Qiita Teams that are logged in
You are not logged in to any team

Log in to Qiita Team
Community
OrganizationEventAdvent CalendarQiitadon (β)
Service
Qiita JobsQiita ZineQiita Blog
152
Help us understand the problem. What are the problem?

More than 3 years have passed since last update.

@hypermkt

lsofコマンド入門

はじめに

サーバーで特定のポート番号を待ち受けているかどうか、指定ファイルは誰が読み込んでいるのかを調べたいときがあります。その際に役立つ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コマンドは多機能なので全てを使いこなすのは難しそうですが、普段の運用で利用するのはほんの一握りの機能でも十分です。まずは基礎を覚えるだけでも、調査と原因究明が捗るようになるので、是非今後も利用していきたいです。

参考

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
152
Help us understand the problem. What are the problem?