watcherd – Escucha de Shell para cambios de directorio en Linux
En este artículo, voy a contarles sobre el oyente de directorio de shell llamado vigilante. Daemon watcherd verificará los cambios de directorio y ejecutará comandos específicos o scripts de shell.
Instalación de watcherd
En Ubuntu 16.04
Descargar
$ wget https://github.com/devilbox/watcherd/archive/master.zip
Descomprimir archivo
$ unzip master.zip
Si no tiene unzip instalado, ejecute
$ sudo apt-get install unzip
Y copiar a /usr/bin/
$ sudo cp watcherd-master/watcherd /usr/bin/
Uso
Ahora podemos ejecutar con --help
bandera
$ watcherd --help
Creemos un directorio llamado prueba y hagamos que watcherd funcione
$ mkdir test
Ahora comience a observar con parámetros simples
$ watcherd -v -p ~/test -a "echo added %n" -d "echo deleted %n" -t "ls -l ~/test" &
Una pequeña pista sobre los parámetros de Watcherd
-v
salida detallada-p ~/test
ruta al directorio-a "echo added %n"
ejecutar"echo added"
si se crea algún directorio en la ruta-d "echo deleted %n"
ejecutar"echo deleted"
si se elimina algún directorio en la ruta%n
será sustituido por el nombre del directorio o puede usar%p
para obtener una ruta completa al directorio creado o eliminado-t "ls -l ~/test"
ejecutar comando después de disparar&
ejecutar en segundo plano
Y comprueba si está funcionando
$ ps ax | grep watcherd
Ahora podemos intentar crear un nuevo directorio llamado aaa
en nuestra carpeta de prueba
$ mkdir test/aaa
Como podemos ver después de crear el directorio. aaa
vigilante ejecutado 'echo added aaa'
, recibimos un mensaje detallado de watcherd con la adición de un nuevo directorio y su ruta completa y ls -l
salida de disparo.
Ahora eliminemos este directorio y verifiquemos el resultado.
$ rm -r test/aaa
Obtuvimos el mismo resultado solo con el echo deleted aaa
. Pero en lugar de hacer echo
puede ejecutar allí cualquier comando de shell o ejecutar cualquier script.
Este demonio puede ser muy útil con servidores web como nginx o apache para monitorear nuevas carpetas con sitios web, crear nuevos archivos de configuración y reiniciar el servidor web.