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

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/


URL-Projektdokument hinzugefügt.
Gilles Quenot

inotifyist Linux-spezifisch, aber die Frage hat keinen Linux-Tag. Gute Lösungen werden jedoch betriebssystemspezifisch sein.
Jordan
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.