ファイルロックを追跡する方法(ディレクトリ別)

ファイルロックを追跡する方法(ディレクトリ別)

私はLinuxに初めてアクセスし、これを行う方法を知りません。

ディレクトリがあり、ディレクトリ内のファイルがファイルロックを獲得する時期と解放される時期をモニタリング(シェルに出力)したいと思います。

ファイルがいつ作成されるかなど、他のことを知っておくと良いですが、主にロックに興味があります。

どのプロセスがロックを実行したかを知る必要はありません。ロックが発生した順序がより重要です。

私はこの目的のためのいくつかのツールがあると確信しています(すでにインストールしていますが、ここで質問することに決める前にはインストールしませんdtraceでした)。--help

どんなアドバイスでも心から感謝します。重要な場合は、Fedora 14ボックスを実行しています。

答え1

欲しいものを手に入れることができるかどうかは確認していませんが、最初に試してみると監査サブシステムauditdデーモンが起動したことを確認してから使用してください。auditctl記録する内容を設定します。一般的なファイルシステムアクセスの場合は、次のようにします。

auditctl -w /path/to/directory
auditctl -a exit,always -S fnctl -S open -S flock -F dir=/path/to/directory

この-Sオプションを使用すると、特定のシステムコールのログ記録を制限できます。これらのログは/var/log/audit/audit.logDebianとFedoraに表示されます。

ファイルをロックできるプロセスがわかっている場合は、そのstraceプロセスで実行することを検討してください(ファイル固有のシステムコールのみを確認するか、特定のシステムコールにさらに制限する)。

strace -s9999 -o foo.strace -e file foo

関連情報