Wie protokolliere ich alle im Verzeichnis durchgeführten Ereignisse?

12

Wie kann ich alle in einem bestimmten Verzeichnis durchgeführten Ereignisse protokollieren?

Ich möchte den Eintrag jedes Verzeichnisses protokollieren, das innerhalb einer bestimmten Zeitspanne geändert wurde. Ich benutze find . -type d -mmin -5Befehl.

Wenn ein Verzeichnis an einen anderen Ort verschoben wird, müssen die folgenden Protokolldetails hinzugefügt werden, z.

Verzeichnis "xyz" von "home / usr / xyz" => nach "home / usr / documents / xyz" verschoben
Ghanshyam Rathod
quelle

Antworten:

9

Wenn LinuxSie einen inotifywaitBefehl verwenden , sollten Sie ihn versuchen , um Ereignisse in Dateien oder Verzeichnissen abzuhören.

inotifywait -m -r /dir

Sie können eine whileSchleife darüber verwenden, um die Ausgabe zu filtern.

Außerdem ist es sehr leicht: Nicht poll()alle N Sekunden, das ist alles Magie.

Siehe http://inotify-tools.sourceforge.net/

Gilles Quenot
quelle
URL-Projektdokument hinzugefügt.
Gilles Quenot
inotifyist Linux-spezifisch, aber die Frage hat keinen Linux-Tag. Gute Lösungen werden jedoch betriebssystemspezifisch sein.
Jordan