Ich möchte einen Trigger haben und wenn von einem Prozess auf eine bestimmte Datei zugegriffen wird, möchte ich benachrichtigt werden (dh ein Skript sollte ausgeführt werden). Wenn ich das richtig verstehe, könnte man das mit inotify
erreichen .
Wenn ich eine Datei /foo/bar.txt
habe wie würde ich inotify
einrichten diese Datei überwachen?
Ich verwende Debian Wheezy mit Kernel 3.12 (mein Kernel unterstützt Inotify)
Akzeptierte Antwort:
Laut Gilles auf Super User:
Einfach, mit inotifywait (installieren Sie die inotify-tools
Ihrer Distribution Paket):
while inotifywait -e close_write myfile.py; do ./myfile.py; done
Dies hat eine große Einschränkung:wenn irgendein Programm myfile.py
ersetzt mit einer anderen Datei, anstatt in die vorhandene myfile
zu schreiben , inotifywait
wird sterben. Die meisten Editoren arbeiten so.
Um diese Einschränkung zu umgehen, verwenden Sie inotifywait
im Verzeichnis:
while true; do
change=$(inotifywait -e close_write,moved_to,create .)
change=${change#./ * }
if [ "$change" = "myfile.py" ]; then ./myfile.py; fi
done