Watchman – Ein Tool zum Überwachen von Dateien und Verzeichnissen für Änderungen

Wächter ist ein plattformübergreifender Open Source- und Dateiüberwachungsdienst, der Dateien überwacht und aufzeichnet oder Aktionen ausführt, wenn sie sich ändern. Es wird von entwickelt Facebook und läuft unter Linux, OS X, FreeBSD und Solaris. Es wird in einem Client-Server-Modell ausgeführt und verwendet das Dienstprogramm inotify des Linux-Kernels, um eine leistungsfähigere Benachrichtigung bereitzustellen.

Nützliche Konzepte von Watchman

  • Es überwacht rekursiv einen oder mehrere Verzeichnisbäume.
  • Jedes überwachte Verzeichnis wird als Root bezeichnet.
  • Sie kann über die Befehlszeile oder eine im JSON-Format geschriebene Konfigurationsdatei konfiguriert werden.
  • Es zeichnet Änderungen an Protokolldateien auf.
  • Unterstützt das Abonnement von Dateiänderungen, die in einem Stammverzeichnis auftreten.
  • Ermöglicht das Abfragen eines Stammverzeichnisses nach Dateiänderungen seit Ihrer letzten Überprüfung oder nach dem aktuellen Status des Baums.
  • Es kann ein ganzes Projekt sehen.

In diesem Artikel erklären wir die Installation und Verwendung Wächter Dateien überwachen (überwachen) und aufzeichnen, wenn sie sich unter Linux ändern. Wir werden auch kurz zeigen, wie man ein Verzeichnis überwacht und ein Skript aufruft, wenn es sich ändert.

Installieren des Watchman File Watching Service unter Linux

Wir werden installieren Wächter Service aus Quellen, installieren Sie also zuerst diese erforderlichen Abhängigkeiten libssl-dev, autoconf, automake libtool, Setuptools, Python-Entwicklung und libfolly Verwenden Sie den folgenden Befehl in Ihrer Linux-Distribution.

----------- 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'  

Sobald die erforderlichen Abhängigkeiten installiert sind, können Sie mit dem Erstellen von Watchman beginnen, indem Sie das Github-Repository herunterladen, in das lokale Repository wechseln, es mit den folgenden Befehlen konfigurieren, erstellen und installieren.

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

Anzeigen von Dateien und Verzeichnissen mit Watchman unter Linux

Wächter kann auf zwei Arten konfiguriert werden: (1) über die Befehlszeile, während der Dämon im Hintergrund ausgeführt wird, oder (2) über eine im JSON-Format geschriebene Konfigurationsdatei.


So schauen Sie sich ein Verzeichnis an (z ~/bin) Führen Sie für Änderungen den folgenden Befehl aus.

$ watchman watch ~/bin/
Sehen Sie sich ein Verzeichnis unter Linux an
Sehen Sie sich ein Verzeichnis unter Linux an

Der folgende Befehl schreibt eine Konfigurationsdatei mit dem Namen state unter / usr / local / var / run / watchman /-Zustand/, im JSON-Format sowie eine Protokolldatei namens log am selben Ort.

Sie können die beiden Dateien mit dem Befehl cat als show anzeigen.

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

Sie können auch festlegen, welche Aktion ausgelöst werden soll, wenn ein Verzeichnis auf Änderungen überwacht wird. Zum Beispiel im folgenden Befehl: ‘test-trigger‘ist der Name des Auslösers und ~bin/pav.sh ist das Skript, das aufgerufen wird, wenn Änderungen im überwachten Verzeichnis festgestellt werden.

Zu Testzwecken wird die pav.sh Skript erstellt einfach eine Datei mit einem Zeitstempel (dh file.$time.txt) in demselben Verzeichnis, in dem das Skript gespeichert ist.

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

Speichern Sie die Datei und machen Sie das Skript wie gezeigt ausführbar.

$ chmod +x ~/bin/pav.sh

Führen Sie den folgenden Befehl aus, um den Trigger zu starten.

$ watchman -- trigger ~/bin 'test-trigger' -- ~/bin/pav.sh
Erstellen Sie einen Trigger im Verzeichnis
Erstellen Sie einen Trigger im Verzeichnis

Wenn Sie ausführen Wächter Führen Sie den folgenden Befehl aus, um ein Verzeichnis im Auge zu behalten, das zur Überwachungsliste hinzugefügt wurde, und um es anzuzeigen.

$ watchman watch-list 
Beobachtungsliste anzeigen
Beobachtungsliste anzeigen

So zeigen Sie die Triggerliste für a an WurzelFühren Sie den folgenden Befehl aus (ersetzen ~/bin mit dem root Name).

$ watchman trigger-list ~/bin
Triggerliste für eine Wurzel anzeigen
Triggerliste für eine Wurzel anzeigen

Basierend auf der obigen Konfiguration wird jedes Mal die ~/bin Verzeichniswechsel, eine Datei wie file.2019-03-13.23:14:17.txt wird darin erstellt und Sie können sie mit dem Befehl ls anzeigen.

$ ls
Testen Sie die Watchman-Konfiguration
Testen Sie die Watchman-Konfiguration

Watchman Service unter Linux deinstallieren

Wenn Sie deinstallieren möchten WächterWechseln Sie in das Quellverzeichnis und führen Sie die folgenden Befehle aus:

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

Weitere Informationen finden Sie im Watchman Github-Repository: https://github.com/facebook/watchman.

Vielleicht möchten Sie auch die folgenden verwandten Artikel lesen.

  1. Swatchdog – Einfacher Protokolldatei-Watcher in Echtzeit unter Linux
  2. 4 Möglichkeiten zum Überwachen oder Überwachen von Protokolldateien in Echtzeit
  3. fswatch – Überwacht Dateien und Verzeichnisänderungen unter Linux
  4. Pyintify – Überwachen von Dateisystemänderungen in Echtzeit unter Linux
  5. Inav – Apache-Protokolle in Echtzeit unter Linux ansehen

Wächter ist ein Open-Source-Dateiüberwachungsdienst, der Dateien und Aufzeichnungen überwacht oder Aktionen auslöst, wenn sie sich ändern. Verwenden Sie das unten stehende Feedback-Formular, um Fragen zu stellen oder Ihre Gedanken mit uns zu teilen.

Similar Posts

Leave a Reply

Your email address will not be published. Required fields are marked *