GNU/Linux >> Tutoriales Linux >  >> Linux

¿Usando Inotify para monitorear el acceso a un archivo?

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

Linux
  1. Administrar el inicio usando systemd

  2. ¿Monitoreo de acceso a archivos de Linux?

  3. ¿Usando Uniq en texto Unicode?

  4. Cómo auditar el acceso a archivos en Linux

  5. Reiniciar el proceso de cambio de archivo en Linux

Uso del archivo de configuración SSH

Cómo monitorear cambios de archivos usando fswatch en Linux

Cómo:una introducción al uso de Git

Transferir archivos usando WinSCP

Cómo abrir un archivo en vim usando pipe

¿Cómo eliminar un archivo sin usar rm?