Watchman - un outil d'observation de fichiers et de répertoire pour les modifications

Watchman - un outil d'observation de fichiers et de répertoire pour les modifications

Gardien est un service d'observation de fichiers open source et multiplateforme qui regarde les fichiers et les enregistrements ou effectue des actions lorsqu'ils changent. Il est développé par Facebook et fonctionne sur Linux, OS X, FreeBSD et Solaris. Il s'exécute dans un modèle client-serveur et utilise l'utilité inotifier du noyau Linux pour fournir une notification plus puissante.

Concepts utiles de Watchman

  • Il regarde de manière récursive regarder un ou plusieurs arbres d'annuaire.
  • Chaque répertoire regardé est appelé une racine.
  • Il peut être configuré via la ligne de commande ou un fichier de configuration écrit au format JSON.
  • Il enregistre les modifications des fichiers journaux.
  • Prend en charge l'abonnement aux modifications de fichiers qui se produisent dans une racine.
  • Vous permet de demander une racine pour les modifications de fichiers depuis la dernière vérification, ou l'état actuel de l'arbre.
  • Il peut regarder un projet entier.

Dans cet article, nous expliquerons comment installer et utiliser gardien Pour regarder (surveiller) les fichiers et enregistrer lorsqu'ils changent dans Linux. Nous montrerons également brièvement comment regarder un répertoire et invoquer un script quand il change.

Installation du service d'observation de fichiers Watchman dans Linux

Nous installerons gardien Service à partir de sources, alors installez d'abord ces dépendances requises libssl-dev, autoconf, automake libtool, Sétuptools, devent de python et libfolly en utilisant la commande suivante sur votre distribution Linux.

----------- Sur Debian / Ubuntu ----------- $ sudo apt installer AutoConf Automake build-essential python-setuptools python-dev libssl-dev libtool ----------- Sur Rhel / Centos ----------- # yum installer AutoConf Automake Python-SetUptools Python-devel OpenSSL-devel libssl libtool # yum GroupInstall 'Development Tools' ----------- Sur Fedora ----------- $ sudo dnf installer AutoConf Automake Python-SetUptools OpenSSL-devel libssl libtool $ sudo dnf groupinstall 'Development Tools' 

Une fois les dépendances requises installées, vous pouvez commencer à construire Watchman en téléchargeant son référentiel GitHub, passer dans le référentiel local, configurer, le construire et l'installer en utilisant les commandes suivantes.

$ git clone https: // github.com / Facebook / Watchman.git $ cd watchman $ git cacher v4.9.0 $ ./ autogène.sh $ ./ Configurer $ Make $ sudo 

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

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

Pour regarder un répertoire (E.g ~ / bac) Pour les modifications, exécutez la commande suivante.

$ watchman watch ~ / bin / 
Regardez un répertoire dans Linux

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

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

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

Vous pouvez également définir l'action à déclencher lorsqu'un répertoire est surveillé pour les modifications. Par exemple dans la commande suivante, 'déclencheur de test«est le nom du déclencheur et ~ bac / pav.shot Le script sera-t-il invoqué lorsque des modifications sont détectées dans le répertoire surveillé.

À des fins de test, le pavé.shot Le script crée simplement un fichier avec un horodatage (je.e déposer.$ time.SMS) dans le même répertoire où le script est stocké.

heure = 'date +% y-% m-% d.% H:% M:% S 'Fichier tactile.$ time.SMS 

Enregistrer le fichier et rendre l'exécutable de script comme indiqué.

$ chmod + x ~ / bin / pav.shot 

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

$ watchman - Trigger ~ / bin 'Test-Trigger' - ~ / bin / pav.shot 
Créer un déclencheur sur le répertoire

Lorsque vous exécutez gardien Pour garder un œil sur un répertoire, il est ajouté à la liste de surveillance et pour le voir, exécutez la commande suivante.

$ watchman watch-list 
Afficher la liste de surveillance

Pour afficher la liste de déclenchement pour un racine, Exécutez la commande suivante (remplacer ~ / bac avec le racine nom).

$ watchman Trigger-list ~ / bin 
Afficher la liste de déclenchement pour une racine

Sur la base de la configuration ci-dessus, chaque fois le ~ / bac modifications du répertoire, un fichier tel que déposer.2019-03-13.23:14:17.SMS est créé à l'intérieur et vous pouvez les voir à l'aide de la commande LS.

$ ls 
Test Watchman Configuration

Service de Watchman désinstallé à Linux

Si tu veux désinstaller gardien, Déplacez-vous dans le répertoire source et exécutez les commandes suivantes:

$ sudo faire une désinstallation $ cd '/ usr / local / bin' && rm -f watchman $ cd '/ usr / local / share / doc / watchman-4.9.0 '&& rm -f readme.réduction 

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

Vous aimerez peut-être également lire ces articles connexes suivantes.

  1. SwatchDog - simple observateur de fichiers journaux en temps réel en Linux
  2. 4 façons de regarder ou de surveiller les fichiers journaux en temps réel
  3. Fswatch - surveille les fichiers et les modifications de répertoire dans Linux
  4. Pyintify - Monitor les modifications du système de fichiers en temps réel dans Linux
  5. INAV - Regardez les journaux Apache en temps réel dans Linux

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