GNU/Linux >> Tutoriales Linux >  >> Linux

Ejecutar script/programa cuando cambia el archivo

una de sus opciones es el subsistema inotify del kernel de Linux:

inotify es un subsistema del kernel de Linux que actúa para extender los sistemas de archivos para notar cambios en el sistema de archivos e informar esos cambios a las aplicaciones

pero desde inotify es kernel-land, necesita algo en el espacio de usuario para usarlo:

  • inchron:

El demonio cron de inotify (incrond) es un demonio que supervisa los eventos del sistema de archivos y ejecuta comandos definidos en las tablas del sistema y del usuario. Su uso es generalmente similar al de cron(8).

  • juego:

Gamin es un sistema de monitoreo de archivos y directorios que implementa de forma independiente un subconjunto de FAM, el Monitor de alteración de archivos. Al ejecutarse como un servicio, permite la detección de modificaciones en un archivo o directorio. gam_server funciona como un demonio para Gamin.

  • 'notificación':

inoticing:activa acciones cuando los archivos llegan a un directorio entrante

hubo una respuesta a una pregunta similar en askubuntu:

https://askubuntu.com/a/43848/1223


Otra forma rápida y sucia de hacer esto es usar inotifywait del paquete inotify-tools (en fedora).

Me gusta más este método porque puedes hacerlo todo desde una sola línea de comando de bash. A menudo uso esto cuando estoy escribiendo pequeños programas para ver los resultados de lo que acabo de guardar.

while [[ 1 ]]; do inotifywait -e modify <filename>; make && ./helloworld; done

Linux
  1. ¿Es posible averiguar qué programa o secuencia de comandos creó un archivo determinado?

  2. ¿Qué sucede exactamente cuando ejecuto un archivo en el Shell?

  3. Cuando usamos el comando Mv, ¿qué cambios tienen lugar en el disco duro?

  4. ¿Cómo puedo comprobar que existe un archivo y ejecutar un comando si no es así?

  5. Cómo ejecutar un script cuando finaliza la sesión de xfce

35 ejemplos de secuencias de comandos Bash

¿Cómo ejecutar un archivo .sh cuando comienza la sesión?

¿Cómo ejecutar un comando cada vez que cambia un archivo?

Cómo ejecutar un shellscript cuando conecto un dispositivo USB

shebang o no shebang

¿Cómo ejecutar automáticamente un script cuando cambia el contenido de un directorio en Linux?