では、今日も授業を始める。今日のテーマはlsof(エルエスオーエフ)コマンドだ。
lsofコマンドって何!?
特定のポート番号について、何のプロセスが実行しているか確認するコマンドは、lsofコマンドだ。
例えば、22番ポートを何のプロセスが実行しているか確認するコマンドは!?
rootユーザになって、lsof -i:22 -Pと入力して、[Enter]を押せばいい。
-i:の後ろにポート番号を指定する。lsof -i:22でもよい。
3306番ポートの場合は、lsof -i:3306になる。
-Pをつけると、NAME列がポート番号で表示される。
-Pをつけないと、NAME列がサービス名で表示される。
もし、lsofコマンドがインストールされていなかったら、以下コマンドでlsofをインストールすればいいんでしょ。
yum -y install lsof
うむ。lsofがインストールできていれば、lsof -vコマンドで、lsofのバージョンが表示できる。
特定のファイルを開いているプロセスが何か確認するコマンドは以下になる。
lsof /var/log/messages
lsofをオプションなしで実行すると、すべてのプロセスが表示される。
lsof
特定のプロセスIDの情報を確認したいときは、-pオプションを使う
lsof -p 11111
特定ユーザが実行しているプロセスを確認したいときは、-uオプションを使う。例えば、以下はユーザをnginxとした場合の例だ。
lsof -u nginx
-cオプションでプロセス名を指定できる。例えば、javaプロセスの情報を確認する場合は以下の通り。
lsof -c java
TCPを確認したいときは、lsof -iTCPもしくは、lsof -i TCPで確認できる。
UDPを確認したいときは、lsof -iUDPもしくは、lsof -i UDPで確認できる。
lsofコマンドのオプションを複数指定すると、OR条件になる。
AND条件にしたい場合は、-aをつける必要がある。-uでユーザ名を指定し、-cでプロセス名を指定して、AND条件の場合は以下の通りだ。
lsof -a -u testuser01 -c java
lsofは多機能なんだね。
では、今日はここまで。
は~い
1.lsofでポート番号が何のプロセスで実行されているか確認できる
2.lsof -i:22 -Pもしくはlsof -i:22で22番ポートのプロセスを確認
3.lsofはyum -y install lsofでインストール
4.lsof 【ファイル名】で、何のプロセスがファイルを開いているか確認
5.lsof /var/log/* で、/var/log/配下を一度に確認できる
6.lsof -p 【プロセスID】
7.lsof -u 【ユーザ名】
8.lsof -c 【プロセス名】
9.lsof -c 【プロセス名】
10.lsof -iTCPもしくはlsof -i TCP
11.lsof -iUDPもしくはlsof -i UDP
12.lsofは複数オプションを指定するとOR条件
13.lsofは複数オプションを指定しても-aをつければAND条件