Red Hat Enterprise Linux (RHEL) 面接対策:質問と回答集

Red Hat Enterprise LinuxBeginner
オンラインで実践に進む

はじめに

この包括的なガイドへようこそ。Red Hat Enterprise Linux (RHEL) の面接で成功するために必要な知識と自信を身につけることができます。このドキュメントでは、基本的な RHEL コマンドやシステム管理から、ネットワーク、セキュリティ、パフォーマンスチューニング、自動化といった高度な概念まで、幅広い必須トピックを詳細にカバーしています。初めて RHEL 中心の役割に臨む場合でも、専門知識を深めたい場合でも、このリソースは、技術的な議論を容易に進め、RHEL エコシステムにおけるあなたの習熟度を示すための詳細な回答、実践的な洞察、シナリオベースの問題解決テクニックを提供します。面接の旅路に幸運を祈ります!

RHEL

RHEL の基本と基本的なコマンド

Linux におけるハードリンクとシンボリックリンク(ソフトリンク)の主な違いは何ですか?

回答:

ハードリンクはファイルの inode を直接指し、同じデータブロックを共有し、ファイルシステムをまたぐことはできません。シンボリックリンクは、別のファイルまたはディレクトリへのパスを含む特別なファイルであり、ファイルシステムをまたぐことができ、元のファイルが移動または削除されると壊れます。


'sudo' コマンドの目的と、それがどのようにセキュリティを強化するか説明してください。

回答:

'sudo' コマンドは、許可されたユーザーがセキュリティポリシーで指定されたとおりに、スーパーユーザーまたは別のユーザーとしてコマンドを実行できるようにします。これにより、root パスワードを共有せずに一時的な権限昇格を付与することでセキュリティが強化され、アクションはアカウンタビリティのためにログに記録されます。


RHEL で特定のディレクトリのディスク使用量を確認するにはどうすればよいですか?

回答:

'du' コマンドを使用できます。例えば、'du -sh /path/to/directory' は、指定されたディレクトリとその内容の人間が読める形式のサイズを表示します。'df -h' は、ファイルシステム全体のディスクスペースを表示します。


'grep' コマンドの機能と、簡単な使用例を説明してください。

回答:

'grep' コマンドは、ファイル内でパターン(テキスト)を検索するために使用されます。簡単な使用例としては、'grep 'error' /var/log/messages' があり、システムログファイル内で 'error' という単語を含むすべての行を見つけます。


'/etc/fstab' ファイルの重要性は何ですか?

回答:

'/etc/fstab' ファイルには、マウントポイント、タイプ、オプションを含むファイルシステムに関する静的な情報が含まれています。システムは起動時にこのファイルを読み取り、どのファイルシステムをどのようにマウントするかを決定します。


RHEL システムで実行中のすべてのプロセスを一覧表示し、特定のユーザーでフィルタリングするにはどうすればよいですか?

回答:

'ps aux' を使用してすべてのプロセスを一覧表示できます。ユーザーでフィルタリングするには、出力を 'grep' にパイプします。例:'ps aux | grep username'。あるいは、'pgrep -u username' を使用して特定のユーザーの PID を一覧表示することもできます。


RHEL における 'yum' と 'dnf' の違いを説明してください。

回答:

DNF (Dandified YUM) は YUM (Yellowdog Updater, Modified) の次世代バージョンであり、RHEL 8 以降のデフォルトのパッケージマネージャーです。DNF は、YUM と比較してパフォーマンスが向上し、依存関係の解決が改善され、より堅牢な API を提供します。


ファイルまたはディレクトリのパーミッションを変更するために使用するコマンドと、数値モード(例:755)は何を表しますか?

回答:

'chmod' コマンドはパーミッションを変更するために使用されます。755 のような数値モードは、それぞれ所有者、グループ、その他のユーザーに対するパーミッションを表します。各桁は、読み取り (4)、書き込み (2)、実行 (1) のパーミッションの合計です。したがって、755 は所有者が rwx、グループが rx、その他が rx を持つことを意味します。


新しいエントリが追加される際に、大きなログファイルの内容をリアルタイムで表示するにはどうすればよいですか?

回答:

'tail -f' コマンドを使用できます。例えば、'tail -f /var/log/syslog' は syslog ファイルの最後の数行を表示し、その後、ファイルに追加される新しい行を継続的に出力します。


Linux ファイルシステムのコンテキストにおける 'inode' とは何ですか?

回答:

inode は、ファイルまたはディレクトリのサイズ、パーミッション、所有権、タイムスタンプ、およびそのデータが格納されているディスクブロックなどの情報を格納するデータ構造です。Linux ファイルシステム上のすべてのファイルとディレクトリには、一意の inode 番号があります。


システム管理と設定

RHEL システムの現在のランレベルを確認する方法と、ランレベルの重要性について説明してください。

回答:

現在のランレベルは systemctl get-default または runlevel を使用して確認できます。ランレベル(systemd ではターゲット)は、マルチユーザーモード、グラフィカルモード、シングルユーザーモードなどのシステムの状態を定義し、どのサービスがアクティブになるかを決定します。


fstab の目的と、ファイルシステムに新しい永続的なマウントポイントを追加する方法を説明してください。

回答:

fstab (file system table) は、起動時に異なるファイルシステムをどのように、どこで自動的にマウントすべきかを定義する設定ファイルです。新しい永続的なマウントを追加するには、デバイス、マウントポイント、ファイルシステムタイプ、オプション、ダンプ、パスの値を示すエントリを /etc/fstab に追加します。


RHEL 8/9 システムで静的 IP アドレスを設定する手順を説明してください。

回答:

RHEL 8/9 では、通常 nmcli を使用するか、/etc/sysconfig/network-scripts/ifcfg-ethX (古い方法) または /etc/NetworkManager/system-connections/ (新しい方法) のネットワーク設定ファイルを編集します。編集後、NetworkManager サービスを再起動するか、nmcli con up <connection_name> を使用して接続をアクティブ化します。


cron を使用して、毎日特定の時間に実行されるタスクをスケジュールするにはどうすればよいですか?

回答:

crontab コマンドを使用します。ユーザーの crontab を編集するには、crontab -e を実行します。0 2 * * * /path/to/script.sh のようなエントリは、毎日午前 2 時に /path/to/script.sh を実行します。


SELinux とは何ですか?また、そのステータスを確認し、モードを一時的に変更する方法を教えてください。

回答:

SELinux (Security-Enhanced Linux) は、強制アクセス制御 (MAC) ポリシーを提供するセキュリティメカニズムです。ステータスは sestatus で確認できます。モードを一時的に変更するには、パーミッシブモードの場合は setenforce 0、エンフォーシングモードの場合は setenforce 1 を使用します。setenforce 0 はすべての操作を許可しますが、警告をログに記録します。


/var ディレクトリ内で 1GB より大きいすべてのファイルを見つける必要があります。どうすればよいですか?

回答:

find コマンドを使用できます。コマンドは find /var -type f -size +1G となります。これは、/var 内で 1 ギガバイト (1G) より大きい (+) ファイル (-type f) を検索します。


systemctl を使用してサービスを管理する方法を説明してください。サービスの開始と有効化の例を挙げてください。

回答:

systemctl は systemd システムおよびサービスマネージャーを制御するために使用されます。サービスを開始するには systemctl start <service_name> を使用します。起動時に自動的に開始されるようにするには systemctl enable <service_name> を使用します。例えば、systemctl start httpd および systemctl enable httpd です。


RHEL における yumdnf の違いを説明してください。新しい RHEL バージョンで推奨されるのはどちらですか?

回答:

yum (Yellowdog Updater, Modified) は古い RHEL バージョンでのデフォルトのパッケージマネージャーでした。dnf (Dandified YUM) は次世代バージョンであり、RHEL 8 以降で推奨されています。dnf は、yum のコマンドライン構文の互換性を維持しながら、パフォーマンス、依存関係の解決、およびより堅牢な API を提供します。


ファイルシステムのディスク使用量を確認するにはどうすればよいですか?

回答:

df -h コマンドを使用できます。-h オプションは人間が読める形式の出力を提供し、マウントされているすべてのファイルシステムについて、ディスクスペースをギガバイト、メガバイトなどで表示します。


/etc/resolv.conf の目的と、最新の RHEL システムでどのように管理されるか説明してください。

回答:

/etc/resolv.conf は、名前解決のための DNS サーバーと検索ドメインを指定します。最新の RHEL では、NetworkManager または systemd-resolved によって管理されることが多く、これらが動的に更新します。手動での編集は上書きされる可能性があるため、DNS は NetworkManager または nmcli 経由で設定するのが最善です。


ネットワークとセキュリティの概念

TCP と UDP の違いを説明してください。

回答:

TCP (Transmission Control Protocol) は、データパケットを順序通りに確実に配信するコネクション指向の信頼性の高いプロトコルです。UDP (User Datagram Protocol) は、信頼性よりも速度を優先するコネクションレスで信頼性の低いプロトコルであり、ストリーミングやリアルタイムアプリケーションでよく使用されます。


RHEL サーバーのネットワーク構成を確認するにはどうすればよいですか?

回答:

ip addr showifconfig (インストールされている場合) のようなコマンドを使用して、IP アドレスとネットワークインターフェースを表示できます。ルーティングテーブルについては、ip route show を使用します。DNS 構成は通常 /etc/resolv.conf にあります。


ファイアウォールの目的と、RHEL での管理方法を説明してください。

回答:

ファイアウォールは、定義済みのセキュリティルールに基づいて送受信ネットワークトラフィックを制御し、システムを不正アクセスから保護します。RHEL では、firewalld がデフォルトのファイアウォールサービスであり、firewall-cmd ユーティリティを使用して管理されます。


SELinux の機能と、そのステータスを確認する方法を説明してください。

回答:

SELinux (Security-Enhanced Linux) は、プロセスとファイルにセキュリティポリシーを適用することで、強制アクセス制御 (MAC) を提供するセキュリティメカニズムです。ステータスは sestatus コマンドを使用して確認でき、エンフォーシング、パーミッシブ、または無効になっているかを示します。


firewalld でポート 8080 を永続的に開くにはどうすればよいですか?

回答:

パブリックゾーンに対してポート 8080 を永続的に開くには、sudo firewall-cmd --zone=public --add-port=8080/tcp --permanent を使用します。追加後、変更を有効にするには firewalld をリロードする必要があります:sudo firewall-cmd --reload


SSH とは何ですか?また、通常どのポートを使用しますか?

回答:

SSH (Secure Shell) は、安全でないネットワーク上でコンピュータに安全にリモートアクセスするための暗号化されたネットワークプロトコルです。強力な暗号化を使用して、安全でないネットワーク上に安全なチャネルを提供します。SSH は通常 TCP ポート 22 を使用します。


DNS の概念とその重要性を説明してください。

回答:

DNS (Domain Name System) は、人間が読めるドメイン名 (例:example.com) を、機械が読める IP アドレス (例:192.0.2.1) に変換します。インターネットナビゲーションにとって不可欠であり、ユーザーは数値 IP アドレスの代わりに名前でウェブサイトやサービスにアクセスできます。


RHEL サーバーでネットワーク接続の問題をトラブルシューティングするにはどうすればよいですか?

回答:

まず ip addr show で IP 構成を確認します。他のホストまたはゲートウェイへの到達可能性をテストするには ping を使用します。traceroute は接続がどこで切断されているかを特定できます。firewall-cmd --list-all でファイアウォールルールを確認し、ネットワーク関連のエラーについてはシステムログ (journalctl -xe) をレビューしてください。


/etc/hosts の目的は何ですか?

回答:

/etc/hosts ファイルは、ホスト名を IP アドレスにマッピングするローカルのプレーンテキストファイルです。ローカル DNS リゾルバとして機能し、システムが DNS サーバーに問い合わせることなくホスト名を解決できるようにします。テストや DNS エントリのオーバーライドによく使用されます。


RHEL システムでアクティブなネットワーク接続を表示するにはどうすればよいですか?

回答:

ss コマンド (Socket Statistics) または netstat (インストールされている場合) を使用して、アクティブなネットワーク接続を表示できます。例えば、ss -tuln はリッスン中の TCP および UDP ポートを表示し、ss -tunap はプロセス情報を含むすべてのアクティブな TCP および UDP 接続を表示します。


パブリック IP アドレスとプライベート IP アドレスの違いは何ですか?

回答:

パブリック IP アドレスはグローバルに一意であり、インターネット上でルーティング可能で、どこからでも直接通信できます。プライベート IP アドレスはローカルネットワーク (LAN) 内で使用され、インターネット上で直接ルーティングすることはできません。外部と通信するにはネットワークアドレス変換 (NAT) が必要です。


NAT の概念を簡単に説明してください。

回答:

NAT (Network Address Translation) は、転送中のパケットの IP ヘッダー内のネットワークアドレス情報を変更することにより、ある IP アドレス空間を別の IP アドレス空間にマッピングする方法です。これにより、プライベートネットワーク上の複数のデバイスが、インターネットアクセス用に単一のパブリック IP アドレスを共有できます。


トラブルシューティングと診断

RHEL サーバーの動作が遅いです。調査のために最初に使う 3 つのコマンドは何ですか?

回答:

CPU とメモリの使用状況を確認するために top または htop、ディスク I/O を監視するために iostat -xz 1、ネットワーク接続とリスニング状態を検査するために netstat -tulnp を使用します。


サービスが起動時に失敗します。この問題をどのようにトラブルシューティングしますか?

回答:

systemctl status <service_name> を使用して、現在の状態とエラーメッセージを確認します。次に、journalctl -u <service_name> でジャーナルログを調べて、より詳細な失敗理由を確認します。最後に、サービスユニットファイルの正しさを検証します。


RHEL サーバーに SSH で接続できません。一般的な原因と、それらをどのように確認しますか?

回答:

一般的な原因としては、SSH サービスが実行されていない (systemctl status sshd)、ファイアウォールがポート 22 をブロックしている (firewall-cmd --list-all)、SSH 設定が間違っている (/etc/ssh/sshd_config)、またはネットワーク接続の問題 (ping, traceroute) が挙げられます。これらを一つずつ体系的に確認します。


RHEL システムで利用可能なディスク容量を確認する方法と、大きなファイルを見つけるために使用するコマンドは何ですか?

回答:

利用可能なディスク容量を確認するには df -h を使用します。大きなファイルを見つけるには、まず du -sh /* を使用して大きなディレクトリを特定し、次に find /path -type f -size +1G -print0 | xargs -0 du -h を使用して特定の大きなファイルを特定します。


ユーザーが特定のディレクトリに書き込めないと報告しています。この問題を診断するためにどのような手順を踏みますか?

回答:

まず ls -ld /path/to/directory を使用してディレクトリのパーミッションと所有権を確認します。次に、ユーザーのグループメンバーシップ (id <username>) を確認し、ausearch -m AVC -ts today または sealert -a /var/log/audit/audit.log を使用して SELinux の拒否がないか確認します。


journalctl の目的と、特定の期間のログをフィルタリングするためにどのように使用するかを説明してください。

回答:

journalctl は、systemd ジャーナルからのメッセージをクエリおよび表示するために使用されます。特定の期間でフィルタリングするには、journalctl --since 'YYYY-MM-DD HH:MM:SS' --until 'YYYY-MM-DD HH:MM:SS' または --since '2 hours ago' のような相対時間を使用します。


RHEL システムで大量のメモリまたは CPU を消費しているプロセスをどのように特定しますか?

回答:

top または htop を使用し、%MEM または %CPU でソートして、上位の消費プロセスを確認します。あるいは、ps aux --sort=-%mem または ps aux --sort=-%cpu でリソース使用量でソートされたプロセスを一覧表示できます。


SELinux とは何ですか?また、そのステータスを素早く確認し、それに関連する「permission denied」エラーをトラブルシューティングする方法はありますか?

回答:

SELinux は、強制アクセス制御を提供するセキュリティ強化機能です。ステータスは sestatus で確認します。「permission denied」エラーの場合、journalctl -b -p err または audit.log で AVC 拒否を探し、分析のために sealert -a /var/log/audit/audit.log を使用します。


ネットワークの問題が疑われます。ネットワーク接続を確認し、DNS の問題を解決するためにどのようなコマンドを使用しますか?

回答:

接続性については ping <IP_address> または ping <hostname> を使用します。DNS については、nslookup <hostname> または dig <hostname> を使用して DNS サーバーに問い合わせます。また、/etc/resolv.conf で正しい DNS サーバーのエントリを確認します。


RHEL サーバーでカーネルバージョンとシステムアップタイムを確認する方法を教えてください。

回答:

カーネルバージョンは uname -r を使用して確認します。システムアップタイムを確認するには uptime コマンドを使用します。このコマンドは現在の時刻、ログイン中のユーザー数、およびロードアベレージも表示します。


パフォーマンスチューニングとベストプラクティス

RHEL システムで CPU を最も消費しているプロセスを特定するにはどうすればよいですか?

回答:

リアルタイム監視には top または htop を使用し、CPU 使用率でソートします。履歴データやより詳細な分析には、ps aux --sort=-%cpu または pidstat を使用して、最も CPU リソースを消費しているプロセスを特定できます。


RHEL でディスク I/O パフォーマンスを監視するために使用するツールは何ですか?

回答:

主に iostat を使用して、読み書きレートや I/O 待機時間を含むディスク I/O 統計を監視します。iotop は、CPU の top と同様に、プロセスごとのディスクアクティビティのリアルタイムビューを提供します。


「swappiness」の重要性と、それを調整する方法を説明してください。

回答:

Swappiness は、カーネルが RAM からスワップスペースに非アクティブなページをどれだけ積極的にスワップアウトするかを制御します。値が低いほど (例:10)、スワッピングが減少し、十分な RAM を持つシステムでパフォーマンスが向上します。これは /proc/sys/vm/swappiness を介して、または /etc/sysctl.conf で永続的に調整されます。


RHEL サーバーでネットワークパフォーマンスを最適化するにはどうすればよいですか?

回答:

最適化には、ネットワークカードの設定調整 (例:デュプレックス/速度のための ethtool)、sysctl を介した TCP/IP パラメータのチューニング (例:net.core.somaxconn, net.ipv4.tcp_tw_reuse)、および冗長性とスループットのための適切なネットワークボンディングまたはチーミングの確保が含まれます。


tuned の目的と、その使用方法を説明してください。

回答:

tuned は、定義済みのプロファイル (例:throughput-performance, latency-performance) に基づいてシステムパフォーマンスを最適化する動的なシステムチューニングデーモンです。プロファイルを適用するには tuned-adm profile <profile_name> を使用し、現在のプロファイルを確認するには tuned-adm active を使用します。


CPU 使用率は低いものの、システムが高負荷状態にある場合のトラブルシューティング方法を説明してください。

回答:

これは多くの場合、I/O ボトルネックまたは中断不可能なスリープ状態にあるプロセスを示唆します。ディスク I/O を確認するために iostat、待機時間を確認するために vmstat、そして「D」(ディスクスリープ) 状態のプロセスを特定するために ps aux を使用し、根本的な I/O 問題を調査します。


開いているファイルディスクリプタの数 (ulimit -n) を増やすことを検討するのはどのような場合ですか?

回答:

アプリケーション、特にデータベースや Web サーバーが「Too many open files」エラーを報告する場合に ulimit -n を増やします。これは、プロセスが同時ファイルまたはソケット接続のデフォルト制限に達していることを示します。これは /etc/security/limits.conf で設定されます。


ディスク容量の問題を防ぐために、ログファイルを管理するためのベストプラクティスは何ですか?

回答:

ベストプラクティスには、logrotate を使用して古いログを圧縮、ローテーション、削除すること、アプリケーションに必要最小限の情報のみをログに記録するように設定すること、および df -h のようなツールでディスク使用量を監視して、増大するログディレクトリを事前に特定することが含まれます。


サービスが起動時に自動的に開始され、適切に管理されていることを確認するにはどうすればよいですか?

回答:

サービスが起動時に開始されるようにするには systemctl enable <service_name> を使用します。管理には systemctl start, stop, restart, status を使用します。これにより、サービスが一貫して利用可能になり、その状態を簡単に監視できます。


パフォーマンスチューニングにおける sysctl.conf の役割は何ですか?

回答:

sysctl.conf は、起動時にカーネルパラメータを永続的に設定するために使用されます。これにより、ネットワークバッファサイズ、仮想メモリの動作 (例:swappiness)、ファイルシステム制限など、システムパフォーマンスの最適化に不可欠ないくつかの側面をチューニングできます。


スクリプティングと自動化 (Bash/Shell)

仮想化とコンテナ化 (KVM, Podman/Docker)

KVM とは何ですか?また、VMware ESXi や VirtualBox のような他の仮想化技術とどう異なりますか?

回答:

KVM (Kernel-based Virtual Machine) は、仮想化拡張機能 (Intel VT または AMD-V) を含む x86 ハードウェア上の Linux 用の完全仮想化ソリューションです。ESXi とは異なり、KVM は Linux カーネルに直接統合されており、Linux をハイパーバイザーに変えます。VirtualBox は Type 2 ハイパーバイザーであり、既存の OS の上に実行されますが、KVM は Type 1 (ベアメタル) ハイパーバイザーです。


KVM ホストで virt-manager または virsh を使用して仮想マシンを作成および管理するにはどうすればよいですか?

回答:

virt-manager は、VM の作成、設定、管理のためのグラフィカルインターフェイスを提供します。コマンドラインには virsh を使用します。作成するには、通常 XML ファイルを定義し、virsh define <vm_name>.xml を使用してから virsh start <vm_name> を実行します。管理コマンドには virsh list --all, virsh shutdown, virsh destroy, virsh console などがあります。


KVM における「virtio」ドライバーの概念と、その重要性について説明してください。

回答:

Virtio は KVM ゲスト用の準仮想化フレームワークです。ネットワークインターフェイス (virtio-net)、ブロックデバイス (virtio-blk)、およびその他の I/O 操作に最適化されたドライバーを提供します。Virtio ドライバーは、ゲスト OS が完全なハードウェアエミュレーションをバイパスしてハイパーバイザーとより効率的に通信できるようにすることで、VM のパフォーマンスを大幅に向上させます。


仮想マシンとコンテナの主な違いは何ですか?

回答:

VM はハードウェアスタック全体 (カーネルを含む) を仮想化し、各 VM に完全なゲスト OS のインストールが必要です。一方、コンテナはホスト OS のカーネルを共有し、アプリケーションとその依存関係のみをパッケージ化します。これにより、コンテナは VM よりもはるかに軽量で、起動が速く、リソース効率が高くなります。


RHEL 環境において、Docker に対する Podman の主な利点は何ですか?

回答:

Podman はデーモンレスのコンテナエンジンであり、Docker のようなバックグラウンドデーモンを必要としません。これにより、単一障害点を排除してセキュリティが強化され、rootless コンテナの実行が可能になります。また、Docker コマンドおよびイメージと完全に互換性があるため、ユーザーはシームレスに移行できます。


Podman を使用して Containerfile (または Dockerfile) でカスタムコンテナイメージをビルドするにはどうすればよいですか?

回答:

ベースイメージ、依存関係、アプリケーションコード、および実行コマンドを指定する Containerfile を作成します。次に、Containerfile を含むディレクトリに移動し、podman build -t my_image_name . を実行します。このコマンドは指示を読み取り、それらをレイヤー化して新しいイメージを作成します。


Podman を使用して簡単な Web サーバーコンテナを実行し、それをホストに公開する方法を説明してください。

回答:

簡単な Nginx コンテナを実行し、ホストのポート 8080 をコンテナのポート 80 にマッピングするには、次のようにします:podman run -d -p 8080:80 --name my_nginx_server nginx-d はデタッチモードで実行し、-p はポートマッピングを処理します。


コンテナレジストリとは何ですか?また、コンテナ化ワークフローにおけるその役割は何ですか?

回答:

コンテナレジストリは、コンテナイメージを保存および配布するための集中リポジトリです。イメージのバージョン管理システムのように機能し、チームがアプリケーションのさまざまなバージョンをプッシュ、プル、および管理できるようにします。例としては、Docker Hub、Quay.io、Red Hat の Image Registry などがあります。


コンテナが削除または再作成された場合でも、コンテナのデータを永続化するにはどうすればよいですか?

回答:

ボリュームまたはバインドマウントを使用します。ボリュームはコンテナエンジンによって管理され、永続データに推奨される方法です。バインドマウントは、ホストファイルシステムのディレクトリをコンテナに直接リンクします。例:podman run -v my_volume:/app/data my_image または podman run -v /host/path:/container/path my_image


podman generate systemd の目的と、いつ使用するかを説明してください。

回答:

podman generate systemd は、実行中のコンテナまたはポッドの systemd ユニットファイルを生成します。これにより、コンテナを標準のシステムサービスとして管理でき、起動時に自動的に開始され、障害時に再起動され、systemctl コマンドで管理できるようになります。本番環境に対応したコンテナ化されたアプリケーションを展開するのに役立ちます。


シナリオベースの問題解決

RHEL サーバーのパフォーマンスが非常に低下しています。問題を診断するために使用する最初の 3 つのコマンドと、それぞれのコマンドで何を確認しますか?

回答:

  1. top または htop: CPU、メモリ、スワップの使用状況を確認し、最も多くのリソースを消費しているプロセスを特定します。
  2. iostat -xz 1: ディスク I/O アクティビティを監視し、高い使用率や長い待機時間がないか確認します。
  3. free -h: 利用可能な RAM とスワップスペースを確認し、メモリ不足を排除します。

ユーザーが RHEL サーバーに SSH で接続できないと報告しています。この問題をトラブルシューティングするためにどのような手順を踏みますか?

回答:

まず、サーバーの IP に対して ping を使用してネットワーク接続を確認します。次に、systemctl status sshd で SSH デーモンが実行されていることを確認します。ファイアウォールルール (firewall-cmd --list-all または iptables -L) をチェックして、ポート 22 が開いていることを確認します。最後に、SSH 関連のエラーがないか /var/log/secure をレビューします。


/var ディレクトリとそのサブディレクトリ内で 1GB より大きいすべてのファイルを見つける必要があります。これをどのように達成しますか?

回答:

find コマンドを使用します:find /var -type f -size +1G。このコマンドは、/var 内で 1 ギガバイトより大きいファイル (-type f) を検索します (-size +1G)。


RHEL サーバー上の重要なサービスが再起動後に起動しませんでした。このトラブルシューティングをどのように開始しますか?

回答:

まず systemctl status <service_name> を使用してサービスのステータスを確認します。失敗した場合は、journalctl -u <service_name> --since '1 hour ago' を使用してそのサービスのジャーナルログを調べ、失敗の原因となった特定のエラーメッセージや依存関係を特定します。


RHEL サーバーのルートファイルシステムがほぼ満杯になっていることに気づきました。原因を特定し、スペースを解放するためにどのような手順を実行しますか?

回答:

df -h / を使用して使用状況を確認します。次に、du -sh /* を使用してルート内の大きなディレクトリを特定します。特に /var/log の大きなログファイル、/tmp、およびユーザーのホームディレクトリで過剰なデータがないか確認します。その後、古いログ/ファイルを圧縮または削除します。


RHEL サーバー上のネットワークアプリケーションが他のホストから到達できません。アプリケーションが実行されており、正しいポートでリッスンしていることを確認しました。次のステップは何ですか?

回答:

firewall-cmd --list-all または iptables -L を使用してファイアウォール設定を確認し、必要なポートが入ってくる接続に対して開いていることを確認します。ポートがブロックされている場合は、そのポートへのトラフィックを許可するルールを追加します。


RHEL サーバーで毎日午前 3 時にスクリプトを実行するようにスケジュールする必要があります。これをどのように設定しますか?

回答:

cron を使用します。crontab -e でユーザーの crontab を開き、エントリ 0 3 * * * /path/to/your/script.sh を追加します。これにより、スクリプトが毎日午前 3:00 に実行されるようにスケジュールされます。


RHEL サーバーで高トラフィックが発生していると疑っています。これをどのように確認し、そのソースを特定しますか?

回答:

nload または iftop を使用して、ネットワーク帯域幅使用量のリアルタイムの概要を取得します。より詳細な分析のために、netstat -tulnp は開いているポートとリッスンしているプロセスを表示し、tcpdump はパケットをキャプチャして詳細な検査を行い、トラフィックのソースと宛先を特定できます。


ユーザーが重要なファイルを誤って削除しました。すぐにバックアップがないと仮定した場合、それを回復するためのアプローチは何ですか?

回答:

ファイルシステムが ext4/xfs の場合、特別なツールやスナップショットなしでの直接的な回復は困難です。私の最初の行動は、それ以上の書き込みを防ぐためにファイルシステムをすぐにアンマウントすることです。その後、extundelete (ext4 の場合) のようなツールを使用するか、利用可能な最新のバックアップから復元することを試みます。


RHEL 8 サーバーのホスト名を永続的に変更する必要があります。どのコマンドを使用しますか?

回答:

hostnamectl コマンドを使用します:hostnamectl set-hostname new_hostname.example.com。このコマンドは /etc/hostname を更新し、再起動せずに変更をすぐに適用します。


DevOps とクラウド統合

Ansible は、インフラストラクチャのプロビジョニングや構成管理のために、AWS や Azure のようなクラウドプラットフォームとどのように統合されますか?

回答:

Ansible は、動的インベントリスクリプトまたはプラグインを使用してクラウドリソースを検出します。その後、クラウド固有のモジュール (例:ec2_instance, azure_rm_virtualmachine) を活用して、インスタンス、ネットワーク、その他のサービスを API を介して直接プロビジョニング、管理、構成します。


Infrastructure as Code (IaC) の概念を説明し、クラウド環境で一般的に使用されるツールを 1 つ挙げてください。

回答:

Infrastructure as Code (IaC) は、物理的なハードウェア構成やインタラクティブな構成ツールではなく、機械可読な定義ファイルを通じてインフラストラクチャを管理およびプロビジョニングするプラクティスです。Terraform は、複数のクラウドプロバイダーをサポートする、広く使用されている IaC ツールです。


CI/CD パイプラインとは何ですか?また、クラウドのコンテキストにおいて RHEL は通常どのように適合しますか?

回答:

CI/CD パイプラインは、コードコミットからデプロイまでのソフトウェア配信のステージを自動化します。RHEL インスタンスは、これらのパイプライン内でビルドエージェント、テスト環境、またはターゲットデプロイメントサーバーとしてよく使用され、アプリケーションに安定した安全なオペレーティングシステムを提供します。


クラウド環境にデプロイされた RHEL サーバーのイミュータビリティ (不変性) をどのように確保しますか?

回答:

イミュータビリティは、必要なすべてのソフトウェアと構成を事前に組み込んだゴールデンイメージ (AWS では AMI、Azure では VM イメージ) をビルドすることで実現できます。更新が必要な場合は、新しいイメージが作成されデプロイされ、既存のインスタンスをインプレースで変更するのではなく置き換えます。


RHEL 上でのコンテナ化 (例:Docker, Podman) は、クラウドにおける DevOps プラクティスをどのように強化しますか?

回答:

コンテナ化は、開発から本番までの環境で一貫性を提供し、アプリケーションのデプロイとスケーリングを簡素化します。RHEL では、Podman は Docker のデーモンレスの代替手段を提供し、セキュリティと systemd との統合を強化し、アプリケーションをクラウドインスタンス間でポータブルにします。


ハイブリッドクラウド環境で RHEL インスタンスを維持する上で、Puppet や Chef のような構成管理ツールの役割は何ですか?

回答:

構成管理ツールは、RHEL インスタンスの望ましい状態を自動化し、オンプレミスとクラウド環境全体で一貫性を確保します。ソフトウェアのインストール、サービスの構成、セキュリティポリシーを管理し、手作業と人的エラーを削減します。


クラウド環境で実行されている RHEL インスタンスとアプリケーションをどのように監視しますか?

回答:

クラウドプロバイダーは、メトリクスとログを収集するネイティブ監視サービス (例:AWS CloudWatch, Azure Monitor) を提供します。さらに、Prometheus Node Exporter のようなエージェントやカスタムスクリプトを RHEL インスタンスにデプロイして、Grafana や ELK スタックのような集中監視システムにデータを送信できます。


'cloud-init' の概念と、クラウド環境での RHEL VM での使用について説明してください。

回答:

Cloud-init は、クラウドインスタンスの初期化を処理する広く使用されているパッケージです。RHEL VM では、ホスト名の設定、ネットワークインターフェイスの構成、パッケージのインストール、および初回起動時のカスタムスクリプトの実行などのタスクを可能にし、自動セットアップを実現します。


パブリッククラウドに RHEL アプリケーションをデプロイする際のセキュリティ上の考慮事項をいくつか挙げてください。

回答:

主な考慮事項には、ネットワークセキュリティ (セキュリティグループ/NSG)、ID およびアクセス管理 (IAM ロール/ポリシー)、データ暗号化 (保存時および転送時)、RHEL の定期的なパッチ適用と脆弱性管理、および規制基準への準拠の確保が含まれます。


クラウド環境で RHEL サーバーのフリートのパッチ適用と更新を自動化するにはどうすればよいですか?

回答:

自動化は、構成管理ツール (Ansible, Puppet) を使用して更新を適用するか、AWS Systems Manager Patch Manager のようなクラウドネイティブサービスを活用することで実現できます。イミュータブルインフラストラクチャの場合、新しいパッチ適用済みイメージがビルドされ、古いインスタンスを置き換えるためにデプロイされます。


まとめ

このドキュメントでは、一般的な RHEL の面接の質問とその効果的な回答について包括的な概要を提供しました。これらの概念を習得することは、技術面接中にあなたの能力と自信を示すために非常に重要です。徹底的な準備と RHEL の基礎に関する確固たる理解を組み合わせることで、成功の可能性が大幅に高まることを覚えておいてください。

面接を超えて、RHEL の世界は常に進化しています。継続的な学習を受け入れ、新しいテクノロジーとベストプラクティスに遅れずについていき、スキルを磨き続けることをやめないでください。成長への献身は、あなたのキャリアに利益をもたらすだけでなく、複雑な課題に専門知識を持って取り組むことを可能にします。幸運を祈ります!