web-dev-qa-db-ja.com

ディスク/ディレクトリへのすべてのアクセスをログに記録することは可能ですか?

ディスクまたはディレクトリへのすべてのアクセスをログに記録する(コンソールまたはファイルに出力するだけの)スクリプトが必要です(どちらも機能します)。また、正確に何(どのサブディレクトリまたはファイル)にアクセスしたのか知りたいです。私のシステムはubuntulinuxです。それは可能ですか、どうすればできますか?

4
amorfis

Inotifyを見てください。それはまさにそれが構築された目的です。 IBMは、 http://www.ibm.com/developerworks/linux/library/l-inotify.html で、半ばまともな紹介をしています(多少古くなっていますが)。

2
womble

単純なフィルタースクリプトを使用して単一のプログラムstraceのアクションを監視することが必要な場合は、より一般的にはSElinuxの「auditd」を確認してください。

http://en.wikipedia.org/wiki/Stracehttp://linux.die.net/man/8/auditd

Windows側で、SysInternalsの人からのfilemonを見てください。

http://technet.Microsoft.com/en-us/sysinternals/bb896642.aspx

3
LapTop006

incron を使用できます。これは、inotifyからのファイルシステムイベント用のcronのようなツールです。

IN_ACCESSイベントが発生するたびに実行されるアクションを定義できます。

設定はcronと同じくらい簡単です:

<path> <mask> <command>

どこ:

  • <path>はファイルシステムパスです(各空白の前には円記号を付ける必要があります)
  • <mask>はシンボリック(inotify.hを参照。シンボルを区切るにはコンマを使用)またはイベントの数値マスク
  • <command>は、イベントで実行するアプリケーションまたはスクリプトです
1
chmeee

その大きな出力を見たいと本当に確信している場合は、auditdを使用できます。ただし、ファイルへのアクセスはログファイルへの出力を意味するため、ファイルに出力する場合は無限ループが発生する可能性があります。ログファイルへの印刷はファイルへのアクセスでもあるため、ログファイルにも印刷する必要があります。ので注意してください。

無限ループがない場合でも、これが出力するデータの量は非常に多いはずです。質問をこの監視で何を達成したいのかと変更した場合、人々はすべてのファイルへのアクセスをログに記録するよりも良い方法を提案できるかもしれません。

0