Me gustaría tener un activador y cuando algún proceso acceda a un archivo en particular, me gustaría recibir una notificación (es decir, se debe ejecutar un script). Si entiendo correctamente, esto podría lograrse con inotify
.
Si tengo un archivo /foo/bar.txt
¿Cómo configuraría inotify
? para monitorear ese archivo?
Estoy usando Debian Wheezy con kernel 3.12 (mi kernel tiene soporte para inotify)
Respuesta aceptada:
Según Gilles en Superusuario:
Simple, usando inotifywait (instale las inotify-tools
de su distribución paquete):
while inotifywait -e close_write myfile.py; do ./myfile.py; done
Esto tiene una gran limitación:si algún programa reemplaza myfile.py
con un archivo diferente, en lugar de escribir en el myfile
existente , inotifywait
morirá. La mayoría de los editores funcionan de esa manera.
Para superar esta limitación, use inotifywait
en el directorio:
while true; do
change=$(inotifywait -e close_write,moved_to,create .)
change=${change#./ * }
if [ "$change" = "myfile.py" ]; then ./myfile.py; fi
done