目の前に僕らの道がある

勉強会とか、技術的にはまったことのメモ

lsofを使ってみる

忘れがちな脳のための覚え書き

lsof はlist open filesの略でファイルを使用しているプロセスをリスト表示するコマンドらしいです。
lpicの教科書には指定したポートを利用しているプロセスを表示するコマンドと紹介されていたので試してみます。

masasuzu@lenny% lsof -i:22                                                                      [~]
COMMAND  PID     USER   FD   TYPE DEVICE SIZE NODE NAME
ssh     2968 masasuzu    3u  IPv4  21620       TCP lenny.intra.masasuzu.net:50575->leon.intra.masasuzu.net:ssh (ESTABLISHED)

こんな感じですね。-i: の後に指定するのは宛先のポート番号ですね。嘘です。一般ユーザなので、自分以外が実行したプロセスが見えていないだけですね。

masasuzu@lenny% sudo lsof -i:22                                                                 [~]
COMMAND  PID     USER   FD   TYPE DEVICE SIZE NODE NAME
sshd    1746     root    3u  IPv6   4527       TCP *:ssh (LISTEN)
sshd    1746     root    4u  IPv4   4529       TCP *:ssh (LISTEN)
ssh     2968 masasuzu    3u  IPv4  21620       TCP lenny.intra.masasuzu.net:50575->leon.intra.masasuzu.net:ssh (ESTABLISHED)
sshd    3031     root    3r  IPv4  21775       TCP lenny.intra.masasuzu.net:ssh->henry.intra.masasuzu.net:39545 (ESTABLISHED)
sshd    3033 masasuzu    3u  IPv4  21775       TCP lenny.intra.masasuzu.net:ssh->henry.intra.masasuzu.net:39545 (ESTABLISHED)

ちなみにプロセス番号を指定することもできます。

masasuzu@lenny% lsof -p 2968                                                                    [~]
COMMAND  PID     USER   FD   TYPE DEVICE    SIZE   NODE NAME
ssh     2968 masasuzu  cwd    DIR    8,1    4096 335289 /home/masasuzu
ssh     2968 masasuzu  rtd    DIR    8,1    4096      2 /
ssh     2968 masasuzu  txt    REG    8,1  354120 258558 /usr/bin/ssh
ssh     2968 masasuzu  mem    REG    8,1   47520 392809 /lib/libnss_files-2.7.so
ssh     2968 masasuzu  mem    REG    8,1   43472 392811 /lib/libnss_nis-2.7.so
ssh     2968 masasuzu  mem    REG    8,1   31536 392807 /lib/libnss_compat-2.7.so
ssh     2968 masasuzu  mem    REG    8,1  130114 392795 /lib/libpthread-2.7.so
ssh     2968 masasuzu  mem    REG    8,1    7736 392792 /lib/libkeyutils-1.2.so
ssh     2968 masasuzu  mem    REG    8,1   32232 258516 /usr/lib/libkrb5support.so.0.1
ssh     2968 masasuzu  mem    REG    8,1   14616 392803 /lib/libdl-2.7.so
ssh     2968 masasuzu  mem    REG    8,1 1375536 392800 /lib/libc-2.7.so
ssh     2968 masasuzu  mem    REG    8,1   11648 392501 /lib/libcom_err.so.2.1
ssh     2968 masasuzu  mem    REG    8,1  154784 258519 /usr/lib/libk5crypto.so.3.1
ssh     2968 masasuzu  mem    REG    8,1  660264 258520 /usr/lib/libkrb5.so.3.3
ssh     2968 masasuzu  mem    REG    8,1  181416 258517 /usr/lib/libgssapi_krb5.so.2.2
ssh     2968 masasuzu  mem    REG    8,1   72568 392814 /lib/libresolv-2.7.so
ssh     2968 masasuzu  mem    REG    8,1   39112 392802 /lib/libcrypt-2.7.so
ssh     2968 masasuzu  mem    REG    8,1   88968 392806 /lib/libnsl-2.7.so
ssh     2968 masasuzu  mem    REG    8,1   93504 255868 /usr/lib/libz.so.1.2.3.3
ssh     2968 masasuzu  mem    REG    8,1   10560 392818 /lib/libutil-2.7.so
ssh     2968 masasuzu  mem    REG    8,1 1667176 255264 /usr/lib/libcrypto.so.0.9.8
ssh     2968 masasuzu  mem    REG    8,1  119288 392797 /lib/ld-2.7.so
ssh     2968 masasuzu    0u   CHR  136,3              5 /dev/pts/3
ssh     2968 masasuzu    1u   CHR  136,3              5 /dev/pts/3
ssh     2968 masasuzu    2u   CHR  136,3              5 /dev/pts/3
ssh     2968 masasuzu    3u  IPv4  21620            TCP lenny.intra.masasuzu.net:50575->leon.intra.masasuzu.net:ssh (ESTABLISHED)
ssh     2968 masasuzu    4u   CHR  136,3              5 /dev/pts/3
ssh     2968 masasuzu    5u   CHR  136,3              5 /dev/pts/3
ssh     2968 masasuzu    6u   CHR  136,3              5 /dev/pts/3

参考までにファイルを指定するとこんな感じになります。

masasuzu@lenny% lsof /home/masasuzu                                                             [~]
COMMAND  PID     USER   FD   TYPE DEVICE SIZE   NODE NAME
zsh     2229 masasuzu  cwd    DIR    8,1 4096 335289 /home/masasuzu
zsh     2239 masasuzu  cwd    DIR    8,1 4096 335289 /home/masasuzu
zsh     2245 masasuzu  cwd    DIR    8,1 4096 335289 /home/masasuzu
mysql   2470 masasuzu  cwd    DIR    8,1 4096 335289 /home/masasuzu
zsh     2862 masasuzu  cwd    DIR    8,1 4096 335289 /home/masasuzu
ssh     2868 masasuzu  cwd    DIR    8,1 4096 335289 /home/masasuzu
zsh     2872 masasuzu  cwd    DIR    8,1 4096 335289 /home/masasuzu
lsof    2885 masasuzu  cwd    DIR    8,1 4096 335289 /home/masasuzu
lsof    2886 masasuzu  cwd    DIR    8,1 4096 335289 /home/masasuzu