私は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.log
DebianとFedoraに表示されます。
ファイルをロックできるプロセスがわかっている場合は、そのstrace
プロセスで実行することを検討してください(ファイル固有のシステムコールのみを確認するか、特定のシステムコールにさらに制限する)。
strace -s9999 -o foo.strace -e file foo