にほんブログ村
オープン中のファイルやプロセス、待ち受けポート番号などを、リストで表示するコマンドです。
lsof(エルエスオーエフ)コマンドは”list open files”の意味であり、多くのUnix系オペレーティングシステムで、オープン中のファイルやそのファイルをオープンしているプロセスのリストを出力するコマンドである。このオープンソースのユーティリティは、パデュー大学コンピューティングセンターの元アソシエートディレクター、ビクター・A・アベルによって開発・サポートされた。lsofはいくつかのUnix系OSで動作し、サポートされている。
https://ja.wikipedia.org/wiki/Lsof
lsofコマンドの書式
lsof [オプション]
「オプション」で、よく使うものは以下のものがあります。
オプション | 意味 |
-P | ポート番号をサービス名に変換しない |
-c | プロセス名を指定する |
-p | プロセス ID を指定する |
-n | 名前解決なしで IP アドレスで表示する |
-u | ユーザー名を指定する |
-i | ネットワークソケットを表示する |
lsof コマンドの出力には、以下の10個の項目があります。
項目 | 意味 |
COMMAND | 表示されているコマンド |
PID | プロセス ID |
USER | 実行ユーザー名 |
FD | ファイルディスクリプター |
TYPE | タイプ |
DEVICE | デバイス |
SIZE/OFF | ファイルサイズ |
NODE | プロトコル |
NAME | ファイル又はポート |
コマンド出力例
それでは、「c」オプションの出力例を見ていきましょう。
「c」オプションでは、プロセス名を指定します。
まずは、ps コマンドでプロセス一覧を見てみましょう。
root@kelly ~]# ps aux | more
USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND
root 1 0.0 0.9 173312 7044 ? Ss 01:42 0:02 /usr/lib/systemd/systemd rhgb --switched-root --system
--deserialize 31
root 2 0.0 0.0 0 0 ? S 01:42 0:00 [kthreadd]
root 3 0.0 0.0 0 0 ? I< 01:42 0:00 [rcu_gp]
root 4 0.0 0.0 0 0 ? I< 01:42 0:00 [rcu_par_gp]
root 5 0.0 0.0 0 0 ? I< 01:42 0:00 [netns]
root 7 0.0 0.0 0 0 ? I< 01:42 0:00 [kworker/0:0H-events_highpri]
root 9 0.0 0.0 0 0 ? I< 01:42 0:07 [kworker/0:1H-events_highpri]
root 10 0.0 0.0 0 0 ? I< 01:42 0:00 [mm_percpu_wq]
root 12 0.0 0.0 0 0 ? I 01:42 0:00 [rcu_tasks_kthre]
root 13 0.0 0.0 0 0 ? I 01:42 0:00 [rcu_tasks_rude_]
この中で、今回は「rcu_gp」を指定してみます。
[root@kelly ~]# lsof -c rcu_gp
lsof: WARNING: can't stat() fuse.gvfsd-fuse file system /run/user/1000/gvfs
Output information may be incomplete.
lsof: WARNING: can't stat() fuse.portal file system /run/user/1000/doc
Output information may be incomplete.
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
rcu_gp 3 root cwd DIR 253,0 235 128 /
rcu_gp 3 root rtd DIR 253,0 235 128 /
rcu_gp 3 root txt unknown /proc/3/exe
[root@kelly ~]#
「rcu_gp」に関する表示が出ましたね。
次に「i」オプションを見てみましょう。
「i」オプションでは、ネットワークソケットを表示します。
[root@kelly ~]# lsof -i | more
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
avahi-dae 772 avahi 12u IPv4 22478 0t0 UDP *:mdns
avahi-dae 772 avahi 13u IPv6 22479 0t0 UDP *:mdns
avahi-dae 772 avahi 14u IPv4 22480 0t0 UDP *:38624
avahi-dae 772 avahi 15u IPv6 22481 0t0 UDP *:55406
chronyd 798 chrony 5u IPv4 22365 0t0 UDP localhost:323
chronyd 798 chrony 6u IPv6 22366 0t0 UDP localhost:323
NetworkMa 949 root 28u IPv4 122860 0t0 UDP kelly.kanan.com:bootpc->_gateway:bootps
cupsd 956 root 6u IPv6 23433 0t0 TCP localhost:ipp (LISTEN)
cupsd 956 root 7u IPv4 23434 0t0 TCP localhost:ipp (LISTEN)
sshd 958 root 3u IPv4 23448 0t0 TCP *:ssh (LISTEN)
sshd 958 root 4u IPv6 23459 0t0 TCP *:ssh (LISTEN)
firefox 36564 kxxx 56u IPv4 209042 0t0 TCP kelly.kk.com:49672->239.237.117.34.bc.googleusercontent.com:htt
ps (ESTABLISHED)
firefox 36564 kxxx 124u IPv4 173714 0t0 TCP kelly.kk.com:35908->ec2-35-161-139-221.us-west-2.compute.amazon
aws.com:https (ESTABLISHED)
[root@kelly ~]#
通信しているもののみが表示されました。
「i」オプションでは、「i:<Port#>」とすることでポート番号を指定することもできます。例えば、HTTP(TCP/80)を指定する場合は、「i:80」と指定します。
以下は、HTTPS(TCP/443)を指定した例となります。
[root@kelly ~]# lsof -i:443 | more
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
firefox 36564 kxxx 56u IPv4 209042 0t0 TCP kelly.kk.com:49672->239.237.117.34.bc.googleusercontent.com:https
(ESTABLISHED)
firefox 36564 kxxx 124u IPv4 173714 0t0 TCP kelly.kk.com:35908->ec2-35-161-139-221.us-west-2.compute.amazonaws
.com:https (ESTABLISHED)
[root@kelly ~]#
次に「u」オプションを見てみましょう。
「u」オプションでは、指定したユーザー名でフィルターして表示します。以下の例では、root ユーザーを指定しています。
[root@kelly ~]# lsof -u root | more
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd 1 root cwd DIR 253,0 235 128 /
systemd 1 root rtd DIR 253,0 235 128 /
systemd 1 root txt REG 253,0 1949240 496091 /usr/lib/systemd/systemd
systemd 1 root mem REG 253,0 582323 579363 /etc/selinux/targeted/contexts/files/file_cont
exts.bin
systemd 1 root mem REG 253,0 45408 33959961 /usr/lib64/libffi.so.8.1.0
systemd 1 root mem REG 253,0 153600 33883645 /usr/lib64/libgpg-error.so.0.32.0
systemd 1 root mem REG 253,0 28552 33978142 /usr/lib64/libattr.so.1.1.2501
systemd 1 root mem REG 253,0 102568 33871561 /usr/lib64/libz.so.1.2.11
systemd 1 root mem REG 253,0 32528 33959999 /usr/lib64/libcap-ng.so.0.0.0
systemd 1 root mem REG 253,0 41056 34639057 /usr/lib64/libeconf.so.0.4.1
以下、省略
今度は、kxxx ユーザーを指定してみます。USER の項目が kxxx のもののみが一覧表示されました。
[root@kelly ~]# lsof -u kanta | more
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
systemd 1828 kxxx cwd DIR 253,0 235 128 /
systemd 1828 kxxx rtd DIR 253,0 235 128 /
systemd 1828 kxxx txt REG 253,0 1949240 496091 /usr/lib/systemd/systemd
systemd 1828 kxxx mem REG 253,0 582323 579363 /etc/selinux/targeted/contexts/files/file_con
texts.bin
systemd 1828 kxxx mem REG 253,0 45408 33959961 /usr/lib64/libffi.so.8.1.0
systemd 1828 kxxx mem REG 253,0 153600 33883645 /usr/lib64/libgpg-error.so.0.32.0
systemd 1828 kxxx mem REG 253,0 28552 33978142 /usr/lib64/libattr.so.1.1.2501
systemd 1828 kxxx mem REG 253,0 102568 33871561 /usr/lib64/libz.so.1.2.11
systemd 1828 kxxx mem REG 253,0 32528 33959999 /usr/lib64/libcap-ng.so.0.0.0
systemd 1828 kxxx mem REG 253,0 41056 34639057 /usr/lib64/libeconf.so.0.4.1
以下、省略
この教材を使って学んでます。
関連するブログ:
- Linux の基本コマンドが変更されて困った
- Raspberry Pi で SNMP エージェントを動かす
- モバイル PC で SaaS の快適アクセス
- LPIC を学ぶ(1) lsof コマンドについて
- Server Name Indication (SNI) とは
- Linux の Cron の基本的な使い方
- Linux で iSCSI イニシエーター設定 (Ubuntu 編)
最近の人気ブログ TOP 10:
- 夢の国で起きた悲劇 ~ディズニーリゾートで心中した一家~
- 新潟県六日町トンネル内灯油焼殺事件 ~16歳と19歳の恋愛に嫉妬した三十路の暴力団組員~
- 知られざる女子高生コンクリ詰め殺人発覚当時の報道(後編)
- 仙台アルバイト女性集団暴行殺人
- 犬鳴峠リンチ焼殺事件 ~超凶悪少年犯罪~
- 浜田省吾 – 聖地巡礼情報 –
- 浜田省吾ファンからの広島旅行のおすすめ
- 未成年に踏みにじられた25歳の純情 ―実録・おやじ狩り被害―
- R40「城東工業高校のテル」はいま
- 高崎山の王・ベンツ ~ミスターニホンザルの生涯~
最近の記事:
- 列島を凍り付かせた未成年たちの凶行2~ 1988年・名古屋アベック殺人事件~第二話
- 列島を凍り付かせた未成年たちの凶行~ 1988年・名古屋アベック殺人事件~ 第一話
- 最近の推し新人アーティスト
- 1990年・ドラクエ Ⅳ 放火事件 ~ドラクエ熱で焼けた家~
- 目指せ!暴力団構成員 ~1973年・現役ヤクザが熱血指導!~ “暴力団組員養成塾”
- Linux で iSCSI イニシエーター設定 (Ubuntu 編)
- 1954年・日光参道で修学旅行生同士が乱闘 ~広島県立山陽高校vs.青森市立第一高校~
- 1962年・岐阜抗争
- サンバのリズムにキレた男 2016年・杉並サンバ祭り会場火炎瓶事件
- 愚か者たちが夢の跡「福ちゃん荘」~1969年・大菩薩峠事件~