J'aimerais avoir un déclencheur et lorsqu'un fichier particulier est accédé par un processus, j'aimerais être averti (c'est-à-dire qu'un script doit être exécuté). Si je comprends bien, cela pourrait être réalisé avec inotify
.
Si j'ai un fichier /foo/bar.txt
comment configurer inotify
surveiller ce fichier ?
J'utilise Debian Wheezy avec le noyau 3.12 (mon noyau prend en charge inotify)
Réponse acceptée :
D'après Gilles sur Super User :
Simple, en utilisant inotifywait (installez les
inotify-tools
de votre distribution paquet):while inotifywait -e close_write myfile.py; do ./myfile.py; done
Cela a une grosse limitation :si un programme remplace
myfile.py
avec un fichier différent, plutôt que d'écrire dans lemyfile
existant ,inotifywait
mourront. La plupart des éditeurs fonctionnent de cette façon.Pour surmonter cette limitation, utilisez
inotifywait
sur le répertoire :while true; do change=$(inotifywait -e close_write,moved_to,create .) change=${change#./ * } if [ "$change" = "myfile.py" ]; then ./myfile.py; fi done