Watchman: una eina de visualització de fitxers i directoris per a canvis


Watchman és un servei de visualització de fitxers de codi obert i multiplataforma que notifica la utilitat del nucli de Linux per proporcionar una notificació més potent.

  • Mira recursivament veure un o més arbres de directoris.
  • Cada directori vigilat s'anomena arrel.
  • Es pot configurar mitjançant la línia d'ordres o un fitxer de configuració escrit en format JSON.
  • Enregistra els canvis als fitxers de registre.
  • Admet la subscripció als canvis de fitxers que es produeixen a l'arrel.
  • Us permet consultar a l'arrel els canvis dels fitxers des de l'última verificació o l'estat actual de l'arbre.
  • Pot veure un projecte sencer.

En aquest article, explicarem com instal·lar i utilitzar Watchman per veure (monitorar) fitxers i gravar quan canvien a Linux. També mostrarem breument com veure un directori i invocar un script quan canviï.

Instal·lació del servei de visualització de fitxers Watchman a Linux

Instal·larem el servei watchman des de les fonts, així que primer instal·leu aquestes dependències necessàries libssl-dev, autoconf, automake libtool, setuptools, python-devel i libfolly utilitzant la següent comanda a la vostra distribució 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'  

Un cop instal·lades les dependències necessàries, podeu començar a crear watchman descarregant el seu repositori github, anar al repositori local, configurar-lo, construir-lo i instal·lar-lo mitjançant les ordres següents.

$ git clone https://github.com/facebook/watchman.git
$ cd watchman
$ git checkout v4.9.0  
$ ./autogen.sh
$ ./configure
$ make
$ sudo make install

Visualització de fitxers i directoris amb Watchman a Linux

Watchman es pot configurar de dues maneres: (1) mitjançant la línia d'ordres mentre el dimoni s'executa en segon pla o (2) mitjançant un fitxer de configuració escrit en format JSON.

Per veure canvis en un directori (p. ex. ~/bin), executeu l'ordre següent.

$ watchman watch ~/bin/

L'ordre següent escriu un fitxer de configuració anomenat state a /usr/local/var/run/watchman/-state/, en format JSON, així com un fitxer de registre anomenat log a la mateixa ubicació.

Podeu veure els dos fitxers utilitzant l'ordre cat com es mostra.

$ cat /usr/local/var/run/watchman/aaronkilik-state/state
$ cat /usr/local/var/run/watchman/aaronkilik-state/log

També podeu definir quina acció activar quan un directori s'observa per canvis. Per exemple, a l'ordre següent, 'test-trigger' és el nom de l'activador i ~bin/pav.sh és l'script que s'invocarà quan es detectin canvis. al directori que s'està supervisant.

Amb finalitats de prova, l'script pav.sh simplement crea un fitxer amb una marca de temps (és a dir, file.$time.txt) dins del mateix directori on s'emmagatzema l'script.

time=`date +%Y-%m-%d.%H:%M:%S`
touch file.$time.txt

Deseu el fitxer i feu que l'script sigui executable tal com es mostra.

$ chmod +x ~/bin/pav.sh

Per llançar el disparador, executeu l'ordre següent.

$ watchman -- trigger ~/bin 'test-trigger' -- ~/bin/pav.sh

Quan executeu watchman per vigilar un directori, s'afegeix a la llista de seguiment i, per veure'l, executeu l'ordre següent.

$ watchman watch-list 

Per veure la llista d'activadors d'una arrel, executeu l'ordre següent (substituïu ~/bin pel nom arrel).

$ watchman trigger-list ~/bin

En funció de la configuració anterior, cada vegada que canvia el directori ~/bin, es crea un fitxer com ara file.2019-03-13.23:14:17.txt al seu interior i podeu veure'ls mitjançant l'ordre ls.

$ ls

Desinstal·lació del servei Watchman a Linux

Si voleu desinstal·lar watchman, aneu al directori font i executeu les ordres següents:

$ sudo make uninstall
$ cd '/usr/local/bin' && rm -f watchman 
$ cd '/usr/local/share/doc/watchman-4.9.0 ' && rm -f README.markdown 

Per obtenir més informació, visiteu el dipòsit de Watchman Github: https://github.com/facebook/watchman.

També us agradaria llegir aquests articles relacionats següents.

  1. Swatchdog: Simple Log File Watcher en temps real a Linux
  2. 4 maneres de veure o supervisar fitxers de registre en temps real
  3. fswatch: supervisa els canvis de fitxers i directoris a Linux
  4. Pyintify: supervisa els canvis del sistema de fitxers en temps real a Linux
  5. Inav: mira els registres d'Apache en temps real a Linux

Watchman és un servei de visualització de fitxers de codi obert que mira fitxers i enregistra, o activa accions, quan canvien. Utilitzeu el formulari de comentaris següent per fer preguntes o compartir els vostres pensaments amb nosaltres.