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