Vorrei avere un trigger e quando si accede a un determinato file da parte di un processo, vorrei essere avvisato (ovvero, dovrebbe essere eseguito uno script). Se ho capito bene, questo potrebbe essere ottenuto con inotify
.
Se ho un file /foo/bar.txt
come posso impostare inotify
monitorare quel file?
Sto usando Debian Wheezy con kernel 3.12 (il mio kernel ha il supporto per inotify)
Risposta accettata:
Secondo Gilles su Super User:
Semplice, usando inotifywait (installa gli inotify-tools
della tua distribuzione pacchetto):
while inotifywait -e close_write myfile.py; do ./myfile.py; done
Questo ha una grossa limitazione:se qualche programma sostituisce myfile.py
con un file diverso, invece di scrivere nel myfile
esistente , inotifywait
morirà. La maggior parte degli editor funziona in questo modo.
Per superare questa limitazione, usa inotifywait
nella directory:
while true; do
change=$(inotifywait -e close_write,moved_to,create .)
change=${change#./ * }
if [ "$change" = "myfile.py" ]; then ./myfile.py; fi
done