ディレクトリで実行されたすべてのイベントをログに記録する方法は?


12

特定のディレクトリで実行されたすべてのイベントを記録するにはどうすればよいですか?

ある期間内に変更された各ディレクトリのエントリを記録したい。find . -type d -mmin -5コマンドを使用しています。

これに加えて、ディレクトリを別の場所に移動したときに、以下のログの詳細を追加する必要があります。たとえば、

ディレクトリ「xyz」が「home / usr / xyz」から「home / usr / documents / xyz」に移動しました

回答:


9

を使用する場合はLinuxinotifywaitコマンドを試してください。ファイルまたはディレクトリでイベントをリッスンするように設計されています。

inotifywait -m -r /dir

whileループを使用して出力をフィルタリングできます。

さらに、非常に軽量ですpoll()。N秒ごとに行う必要はありません。これがすべての魔法です。

http://inotify-tools.sourceforge.net/を参照してください


URLプロジェクトドキュメントが追加されました。
ジルケノ

inotifyLinux固有ですが、質問にはLinuxタグが付いていません。ただし、このような優れたソリューションはOS固有のものになります。
ヨルダン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.