Watchman es un servicio de observación de archivos de código abierto y multiplataforma que observa archivos y registros o realiza acciones cuando cambian. Está desarrollado por Facebook y se ejecuta en Linux, OS X, FreeBSD y Solaris. Se ejecuta en un modelo cliente-servidor y emplea la utilidad inotify del kernel de Linux para proporcionar una notificación más potente.
Conceptos útiles de Watchman
- Observa de forma recursiva uno o más árboles de directorio.
- Cada directorio observado se denomina raíz.
- Se puede configurar a través de la línea de comandos o un archivo de configuración escrito en formato JSON.
- Registra cambios en archivos de registro.
- Admite la suscripción a los cambios de archivo que se producen en una raíz.
- Le permite consultar una raíz para ver los cambios del archivo desde la última vez que verificó, o el estado actual del árbol.
- Puede ver un proyecto completo.
En este artículo, explicaremos cómo instalar y usar watchman para ver (monitorear) archivos y registrar cuando cambian en Linux. También demostraremos brevemente cómo observar un directorio e invocar un script cuando cambia.
Instalación de Watchman File Watching Service en Linux
Instalaremos el servicio watchman desde las fuentes, así que primero instale estas dependencias requeridas libssl-dev , autoconf , automake libtool , setuptools , python-devel y libfolly usando el siguiente comando en su distribución de Linux.
----------- On Debian/Ubuntu ----------- $ sudo apt install autoconf automake build-essential python-setuptools python-dev libssl-dev libtool ----------- On RHEL/CentOS ----------- # yum install autoconf automake python-setuptools python-devel openssl-devel libssl-devel libtool # yum groupinstall 'Development Tools' ----------- On Fedora ----------- $ sudo dnf install autoconf automake python-setuptools openssl-devel libssl-devel libtool $ sudo dnf groupinstall 'Development Tools'
Una vez instaladas las dependencias requeridas, puede comenzar a construir watchman descargando su repositorio github, moverse al repositorio local, configurarlo, compilarlo e instalarlo usando los siguientes comandos.
$ git clone https://github.com/facebook/watchman.git $ cd watchman $ git checkout v4.9.0 $ ./autogen.sh $ ./configure $ make $ sudo make install
Ver archivos y directorios con Watchman en Linux
Watchman se puede configurar de dos maneras: (1) a través de la línea de comandos mientras el demonio se ejecuta en segundo plano o (2) a través de un archivo de configuración escrito en formato JSON.
Para observar un directorio (por ejemplo /bin
) en busca de cambios, ejecute el siguiente comando.
$ watchman watch /bin/
Ver un directorio en Linux
El siguiente comando escribe un archivo de configuración llamado state
en / usr / local / var / run / watchman / &ltusername&gt -state / , en formato JSON, así como un archivo de registro llamado log
en la misma ubicación.
Puede ver los dos archivos usando el comando cat como se muestra.
$ cat /usr/local/var/run/watchman/aaronkilik-state/state $ cat /usr/local/var/run/watchman/aaronkilik-state/log
También puede definir qué acción desencadenar cuando un directorio que está siendo observado para cambios. Por ejemplo, en el siguiente comando, ” test-trigger
” es el nombre del disparador y bin/pav.sh
es el script que se invocará cuando se detecten cambios en el directorio que se está monitoreando.
Para propósitos de prueba, la pav.sh
secuencia de comandos simplemente crea un archivo con una marca de tiempo (es decir file.$time.txt
) dentro del mismo directorio donde se almacena la secuencia de comandos.
time=`date +%Y-%m-%d.%H:%M:%S` touch file.$time.txt
Guarde el archivo y haga que el script sea ejecutable como se muestra.
$ chmod +x /bin/pav.sh
Para lanzar el disparador, ejecute el siguiente comando.
$ watchman -- trigger /bin 'test-trigger' -- /bin/pav.sh
Crear un activador en el directorio
Cuando ejecuta watchman para vigilar un directorio, se agrega a la lista de vigilancia y para verlo, ejecute el siguiente comando.
$ watchman watch-list
Ver lista de observación
Para ver la lista de desencadenantes de una raíz , ejecute el siguiente comando (reemplácelo /bin
con el root
nombre).
$ watchman trigger-list /bin
Mostrar lista de activadores para una raíz
Con base en la configuración anterior, cada vez que /bin
cambia el directorio, file.2019-03-13.23:14:17.txt
se crea un archivo tal como se crea dentro de él y puede verlos usando el comando ls.
$ ls
Prueba de la configuración de Watchman
Desinstalación del servicio Watchman en Linux
Si desea desinstalar watchman , vaya al directorio de origen y ejecute los siguientes comandos:
$ sudo make uninstall $ cd '/usr/local/bin' && rm -f watchman $ cd '/usr/local/share/doc/watchman-4.9.0 ' && rm -f README.markdown
Para obtener más información, visite el repositorio de Watchman Github: https://github.com/facebook/watchman .
También le puede interesar leer los siguientes artículos relacionados.
- Swatchdog – Observador de archivos de registro simple en tiempo real en Linux
- 4 formas de ver o monitorear archivos de registro en tiempo real
- fswatch – Supervisa cambios en archivos y directorios en Linux
- Pyintify: supervise los cambios del sistema de archivos en tiempo real en Linux
- Inav – Ver registros de Apache en tiempo real en Linux
Watchman es un servicio de observación de archivos de código abierto que observa archivos y registros, o activa acciones, cuando cambian. Utilice el formulario de comentarios a continuación para hacer preguntas o compartir sus pensamientos con nosotros.
Herramientas de monitoreo