Linuxでプロセスがどのファイルにアクセスしているか調べる方法

iostatなどで書き込みを行っているプロセスを確認して

strace -p プロセスID 2>&1 | grep -e ^open

もしプロセスがファイルをオープンしている場合、しばらく待っているとopen(“”,…という出力がされます。
プロセスが既にファイルをオープンしている場合はこれが出てこないので、

strace -p プロセスID 2>&1 | grep -e ^write

とするとファイル書き込み時にwrite(ファイルディスクリプタ,…)という出力があります。
読み込みを調べる場合は

strace -p 7540 2>&1 | grep -e ^read\(

を実行します。読み込み時にread(ファイルディスクリプタ,…という出力がされます。

ファイルディスクリプタが分かったら

ll /proc/448/fd/

でファイルディスクリプタとそれにリンクされたファイル名を取得する事ができます(ソケットの場合もあります)。

1 Star2 Stars3 Stars4 Stars5 Stars (まだ投票されていません)
読み込み中...

    コメント