Recherche de site Web

Watchman - Un outil de surveillance des fichiers et des répertoires pour les modifications


Watchman est un service de surveillance de fichiers open source et multiplateforme qui surveille les fichiers et enregistre ou effectue des actions lorsqu'ils changent. Il est développé par Facebook et fonctionne sous Linux, OS X, FreeBSD et Solaris. Il fonctionne dans un modèle client-serveur et utilise l'utilitaire inotify du noyau Linux pour fournir une notification plus puissante.

Concepts utiles de Watchman

  • Il surveille de manière récursive une ou plusieurs arborescences de répertoires.
  • Chaque répertoire surveillé est appelé racine.
  • Il peut être configuré via la ligne de commande ou un fichier de configuration écrit au format JSON.
  • Il enregistre les modifications dans les fichiers journaux.
  • Prend en charge l'abonnement aux modifications de fichiers qui se produisent dans une racine.
  • Vous permet d'interroger une racine sur les modifications apportées au fichier depuis votre dernière vérification ou sur l'état actuel de l'arborescence.
  • Il peut regarder un projet entier.

Dans cet article, nous expliquerons comment installer et utiliser watchman pour surveiller (surveiller) les fichiers et enregistrer leurs modifications sous Linux. Nous montrerons également brièvement comment surveiller un répertoire et appeler un script lorsqu'il change.

Installation du service de surveillance de fichiers Watchman sous Linux

Nous allons installer le service watchman à partir des sources, alors installez d'abord ces dépendances requises libssl-dev, autoconf, automake libtool, setuptools, python-devel et libfolly en utilisant la commande suivante sur votre distribution 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'  

Une fois les dépendances requises installées, vous pouvez commencer à créer watchman en téléchargeant son référentiel github, en accédant au référentiel local, en le configurant, en le construisant et en l'installant à l'aide des commandes suivantes.

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

Regarder des fichiers et des répertoires avec Watchman sous Linux

Watchman peut être configuré de deux manières : (1) via la ligne de commande pendant que le démon s'exécute en arrière-plan ou (2) via un fichier de configuration écrit au format JSON.

Pour surveiller un répertoire (par exemple ~/bin) pour les modifications, exécutez la commande suivante.

watchman watch ~/bin/

La commande suivante écrit un fichier de configuration appelé state sous /usr/local/var/run/watchman/-state/, au format JSON ainsi qu'un journal fichier appelé log au même emplacement.

Vous pouvez afficher les deux fichiers à l'aide de la commande cat comme show.

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

Vous pouvez également définir l'action à déclencher lorsqu'un répertoire est surveillé pour des modifications. Par exemple, dans la commande suivante, 'test-trigger' est le nom du déclencheur et ~bin/pav.sh est le script qui sera invoqué lorsque des modifications sont détectées. dans le répertoire surveillé.

À des fins de test, le script pav.sh crée simplement un fichier avec un horodatage (c'est-à-dire file.$time.txt) dans le même répertoire. où le script est stocké.

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

Enregistrez le fichier et rendez le script exécutable comme indiqué.

chmod +x ~/bin/pav.sh

Pour lancer le déclencheur, exécutez la commande suivante.

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

Lorsque vous exécutez watchman pour garder un œil sur un répertoire, il est ajouté à la liste de surveillance et pour l'afficher, exécutez la commande suivante.

watchman watch-list 

Pour afficher la liste de déclencheurs pour une racine, exécutez la commande suivante (remplacez ~/bin par le nom racine).

watchman trigger-list ~/bin

Sur la base de la configuration ci-dessus, chaque fois que le répertoire ~/bin change, un fichier tel que file.2019-03-13.23:14:17.txt est créé à l'intérieur. et vous pouvez les visualiser en utilisant la commande ls.

ls

Désinstallation du service Watchman sous Linux

Si vous souhaitez désinstaller watchman, accédez au répertoire source et exécutez les commandes suivantes :

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

Pour plus d'informations, visitez le référentiel Watchman Github : https://github.com/facebook/watchman.

Vous aimerez peut-être également lire les articles connexes suivants.

  1. Swatchdog – Simple observateur de fichiers journaux en temps réel sous Linux
  2. 4 façons de regarder ou de surveiller les fichiers journaux en temps réel
  3. fswatch – Surveille les modifications de fichiers et de répertoires sous Linux
  4. Pyintify – Surveiller les modifications du système de fichiers en temps réel sous Linux
  5. Inav – Regardez les journaux Apache en temps réel sous Linux

Watchman est un service de surveillance de fichiers open source qui surveille les fichiers et les enregistrements, ou déclenche des actions, lorsqu'ils changent. Utilisez le formulaire de commentaires ci-dessous pour poser des questions ou partager vos réflexions avec nous.