ファイルを生成するプログラム/プロセスを確認するには? [コピー]

ファイルを生成するプログラム/プロセスを確認するには? [コピー]

削除した後も、自分のホームディレクトリに自動的に表示されるファイルがあるとします。それについて何も知りませんが、そのファイルをそこに保存することが何であるかを理解する方法はありますか?これを生成したプログラム/プロセスを追跡する方法はありますか?

答え1

sysdig1つのオプションは、オープンソースシステム監視アプリケーションを使用することです。これにより、ファイルアクティビティを名前で監視できます。どのプロセスが次の名前のファイルを生成するかを確認したいとします/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

この出力では、pid 5470というプロセスでtouchファイルが開いていることがわかります。

より多くの情報が必要な場合は、システムコールトレースを収集する「キャプチャモード」で実行できます。

# sysdig -w /tmp/dumpfile.scap

次に、ファイルが生成されるのを待ってから停止してsysdig実行します。

# csysdig -r /tmp/dumpfile.scap

これにより、何が起こったのかを調べることができます。を押して<F2>選択し、Filesファイル<F4>名の検索を押してから<F6>「dig」を押します(上記のコマンドに似た出力が表示されます)。これにより、同じ方法を使用して実際にファイルを生成したプロセスに関する情報を見つけることができます。

必要に応じてというGUIバージョンがありますcsysdigsysdig-inspect

関連情報