これは古い質問であることは知っていますが、だれかが有用だと思う場合に備えて、別のアプローチを提案します。私はもともと、この質問にだまされた質問への回答としてこれを投稿しました。
1つのオプションは、使用することsysdig
です:オープンソースのシステム監視アプリケーション。これを使用して、ファイルのアクティビティを名前で監視できます。次の名前のファイルを作成しているプロセスを確認したいとします/tmp/example.txt
。
# sysdig fd.name=/tmp/example.txt
567335 16:18:39.654437223 0 touch (5470) < openat fd=3(<f>/tmp/example.txt) dirfd=-100(AT_FDCWD) name=/tmp/example.txt flags=70(O_NONBLOCK|O_CREAT|O_WRONLY) mode=0666
567336 16:18:39.654438248 0 touch (5470) > dup fd=3(<f>/tmp/example.txt)
567337 16:18:39.654438592 0 touch (5470) < dup res=0(<f>/tmp/example.txt)
567338 16:18:39.654439629 0 touch (5470) > close fd=3(<f>/tmp/example.txt)
567339 16:18:39.654439764 0 touch (5470) < close res=0
567342 16:18:39.654441958 0 touch (5470) > close fd=0(<f>/tmp/example.txt)
567343 16:18:39.654442111 0 touch (5470) < close res=0
その出力から、touch
pid 5470で指定されたプロセスがファイルを開いたことがわかります。
さらに情報が必要な場合は、システムコールトレースが収集される「キャプチャモード」で実行できます。
# sysdig -w /tmp/dumpfile.scap
次に、ファイルが作成されるのを待ってから、停止sysdig
して実行します。
# csysdig -r /tmp/dumpfile.scap
これにより、発生したすべてのことを調査できます。を押し<F2>
て選択しFiles
、を押し<F4>
てファイル名を検索し、を押し<F6>
て「掘る」ことができます(上記のコマンドと同様の出力が表示されます)。これにより、同じアプローチを使用して、実際にファイルを作成したプロセスに関する情報を見つけることができます。
GUI版のcsysdig
呼び出されたがありsysdig-inspect
ます、それがあなたのお茶です。