lsofコマンドとは



※以下書籍はKindle Unlimitedで読めます。

■LinuxとUNIXの違いをわかりやすく解説しています。
※サーバーエンジニアは知っておくべき内容です。

【初心者向け】これだけでLinuxとUNIXの違いがわかる!


■ロードバランサー(LB)をわかりやすく解説しています。
※ネットワークエンジニア、サーバーエンジニアは知っておくべき内容です。

これだけでSNMPがわかる!SNMPの使い方


■SNMPの使い方をわかりやすく解説しています。
※ネットワークエンジニア、サーバーエンジニアは知っておくべき内容です。

これだけでロードバランサーがわかる!


■ChatGPTの使い方をわかりやすく解説しています。

【初心者向け】これだけでわかる!ChatGPTの使い方





では、今日も授業を始める。今日のテーマは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条件


 次の章へ