Linux
入門
lsof

lsofコマンド入門

More than 1 year has passed since last update.

はじめに

サーバーで特定のポート番号を待ち受けているかどうか、指定ファイルは誰が読み込んでいるのかを調べたいときがあります。その際に役立つlsofコマンドについて調べてみました。

lsofコマンドとは

プロセスが開いているファイルを表示するコマンドです。

オプション

オプション 意味
-P ポート番号をサービス名に変換しない
-c プロセス名を指定する
-i ネットワークソケットファイルを指定する
-n IPアドレスを表示する(名前解決しない)
-p プロセスIDを指定する
-u ユーザー名を指定する

出力されている情報

項目 意味
COMMAND 実行されているコマンド
PID プロセスID
USER 実行ユーザー
FD ファイルディスクリプタ
TYPE タイプ
DEVICE デバイス
SIZE/OFF ファイルサイズ
NODE プロトコル
NAME ファイル又はポート

NAME

  • (LISTEN): 待ち受け状態

利用方法

全プロセスを表示する

オプションを付与しないと全てのプロセスについて表示する

$ lsof

特定のポート番号で実行中のプロセスを調べる

$ lsof -i:80 -P 

特定のファイルを開いているプロセスを特定する

$ lsof /var/log/httpd/access_log

コマンドを指定する

$ lsof -c httpd

ユーザーを指定する

$ lsof -u nginx

ネットワークコネクションを出力する

$ lsof -i

ポート番号を指定する

$ lsof -i:80

複数ポート番号を指定できる

$ lsof -i:80,8080

まとめ

lsofコマンドは多機能なので全てを使いこなすのは難しそうですが、普段の運用で利用するのはほんの一握りの機能でも十分です。まずは基礎を覚えるだけでも、調査と原因究明が捗るようになるので、是非今後も利用していきたいです。

参考