にほんブログ村
オープン中のファイルやプロセス、待ち受けポート番号などを、リストで表示するコマンドです。
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 の基本的な使い方と設定方法
- UbuntuとQNAPのiSCSI統合方法
- Raspberry PiでのPi-Hole設定ガイド
- 複数の宛先に ping を打つことができる「fping」
最近の人気ブログ TOP 10:
- 夢の国で起きた悲劇 ~ディズニーリゾートで心中した一家~
- 新潟六日町のトンネル事件:恋愛に狂った暴力団員の極限の嫉妬
- 知られざる女子高生コンクリ詰め殺人発覚当時の報道(後編)
- 仙台アルバイト女性集団暴行殺人
- 犬鳴峠リンチ焼殺事件 ~超凶悪少年犯罪~
- 浜田省吾ファン必見の聖地巡礼訪問地リスト
- 広島の魅力: 浜田省吾ファン必見のスポット
- 未成年に踏みにじられた25歳の純情 ―実録・おやじ狩り被害―
- R40、テルの今:城東工業高校の伝説のその後
- 高崎山の王・ベンツ ~ミスターニホンザルの生涯~
最近の記事:
- 複数の宛先に ping を打つことができる「fping」
- ネイティブの英語 7 “A cup of joe”
- 死刑確定囚・野比のび太 – 第二十三話・昇華するのび太の鬱屈
- 死刑確定囚・野比のび太 – 第二十二話・静の怒りと武の苛立ち
- 死刑確定囚・野比のび太 – 第二十一話・夫婦間の亀裂とのび太の影響
- 死刑確定囚・野比のび太 – 第二十話・のび太の初出勤: 恐れと葛藤
- 死刑確定囚・野比のび太 – 第十九話・ジャイアンとのび太の絆
- 死刑確定囚・野比のび太 – 第十八話・引きこもりの息子と家族のジレンマ
- 死刑確定囚・野比のび太 – 第十七話・ドラえもんと30歳ののび太の葛藤
- 死刑確定囚・野比のび太 – 第十六話・剛田商店の成長と静香の貢献