ablog

不器用で落着きのない技術者のメモ

lsof コマンドってなんだ?

1. ハンドラーモニタリング - ユニックスのlsofコマンドに該当

Dion Cho - Oracle Performance Storyteller: Process Explorer

lsof コマンドってなんだ?

lsof(エルエスオーエフ)コマンドは"list open files"の意味であり、多くのUnixオペレーティングシステムで、オープン中のファイルと、そのファイルをオープンしているプロセスのリストを出力するコマンドである。

lsof - Wikipedia

なるほど。
ということは Oracle のアラートログをどのプロセスがオープンしてるか調べたりできるということか。
ちょっと使ってみる。

# uname -a
Linux centos51 2.6.18-128.el5 #1 SMP Wed Jan 21 10:44:23 EST 2009 i686 i686 i386 GNU/Linux
# lsof alert_orcl.log 
COMMAND  PID   USER   FD   TYPE DEVICE   SIZE    NODE NAME
oracle  3933 oracle    6w   REG  253,0 175426 1315084 alert_orcl.log
oracle  3933 oracle    8w   REG  253,0 175426 1315084 alert_orcl.log
oracle  3935 oracle    6w   REG  253,0 175426 1315084 alert_orcl.log
oracle  3935 oracle    8w   REG  253,0 175426 1315084 alert_orcl.log
oracle  3937 oracle    6w   REG  253,0 175426 1315084 alert_orcl.log
oracle  3937 oracle    8w   REG  253,0 175426 1315084 alert_orcl.log
oracle  3939 oracle    6w   REG  253,0 175426 1315084 alert_orcl.log
oracle  3939 oracle    8w   REG  253,0 175426 1315084 alert_orcl.log
oracle  3941 oracle    6w   REG  253,0 175426 1315084 alert_orcl.log
oracle  3941 oracle    8w   REG  253,0 175426 1315084 alert_orcl.log
oracle  3943 oracle    6w   REG  253,0 175426 1315084 alert_orcl.log
oracle  3943 oracle    8w   REG  253,0 175426 1315084 alert_orcl.log
oracle  3945 oracle    6w   REG  253,0 175426 1315084 alert_orcl.log
oracle  3945 oracle    8w   REG  253,0 175426 1315084 alert_orcl.log
oracle  3947 oracle    6w   REG  253,0 175426 1315084 alert_orcl.log
oracle  3947 oracle    8w   REG  253,0 175426 1315084 alert_orcl.log
oracle  3949 oracle    6w   REG  253,0 175426 1315084 alert_orcl.log
oracle  3949 oracle    8w   REG  253,0 175426 1315084 alert_orcl.log
oracle  3951 oracle    6w   REG  253,0 175426 1315084 alert_orcl.log
oracle  3951 oracle    8w   REG  253,0 175426 1315084 alert_orcl.log
oracle  3955 oracle    6w   REG  253,0 175426 1315084 alert_orcl.log
oracle  3955 oracle    8w   REG  253,0 175426 1315084 alert_orcl.log
oracle  3955 oracle   12w   REG  253,0 175426 1315084 alert_orcl.log
oracle  3957 oracle    6w   REG  253,0 175426 1315084 alert_orcl.log
oracle  3957 oracle    8w   REG  253,0 175426 1315084 alert_orcl.log
oracle  3957 oracle   12w   REG  253,0 175426 1315084 alert_orcl.log
oracle  3959 oracle    6w   REG  253,0 175426 1315084 alert_orcl.log
oracle  3959 oracle    8w   REG  253,0 175426 1315084 alert_orcl.log
oracle  3959 oracle   12w   REG  253,0 175426 1315084 alert_orcl.log
oracle  3970 oracle    6w   REG  253,0 175426 1315084 alert_orcl.log
oracle  3970 oracle    8w   REG  253,0 175426 1315084 alert_orcl.log
oracle  3972 oracle    6w   REG  253,0 175426 1315084 alert_orcl.log
oracle  3972 oracle    8w   REG  253,0 175426 1315084 alert_orcl.log

こりゃ便利だ。


追記:
http://twitter.com/takh777 さん、id:kazuhisya さんに教えて頂いたことをメモってく。

takh777: @yoheia lsof、便利です。謎のportを空けているプロセスを特定したりするときにも使えますね (e.g. lsof -i :1521) (まぁLinuxであれば netstat -anp でいいじゃん、ってハナシですが...)

posted at 15:38:20

kazuhisya: @yoheia lsof超便利ですよ。 lsof -i TCP -nP |grep LISTEN とか!

posted at 15:57:25