(6つの回答)
4年前に閉鎖されました。
ファイルパスが与えられた場合、どのプロセスがそれを作成するか(および/またはファイルの読み取り/書き込み)をどのように判断できますか?
承認された回答:
lsof コマンド(すでにいくつかの回答で言及されています)は、実行時にファイルが開いているプロセスを示します。 lsof
ほぼすべてのUNIXバリアントで利用できます。
lsof /path/to/file
lsof
2マイクロ秒前に開かれ、1マイクロ秒前に閉じられたファイルについては説明しません。特定のファイルを監視し、アクセス時に対応する必要がある場合は、さまざまなツールが必要です。
少し前もって計画を立てることができれば、ファイルを LoggedFSに置くことができます。 ファイルシステム。 LoggedFSは、階層内のファイルへのすべてのアクセスをログに記録するFUSEスタックファイルシステムです。ロギングパラメータは高度に設定可能です。 FUSEはすべての主要なユニスで利用できます。ファイルが作成されたディレクトリへのアクセスをログに記録する必要があります。提供されているサンプル構成ファイルから始めて、このガイドに従って微調整します。
loggedfs -l /path/to/log_file -c /path/to/config.xml /path/to/directory
tail -f /path/to/log_file
多くのユニスは他の監視機能を提供しています。 Linuxでは、比較的新しい監査サブシステムを使用できます。それについての文献はあまりありません(ただし、loggedfsについてはそれ以上です)。このチュートリアルまたはいくつかの例から、またはauditctl
から始めることができます。 マニュアルページ。ここでは、デーモンが起動していることを確認してから、auditctl
を実行するだけで十分です。 :
auditctl -w /path/to/file
(古いシステムにはauditctl -a exit,always -w /path/to/file
が必要だと思います )そして/var/log/audit/audit.log
のログを監視します 。