Website-Suche

Watchman – Ein Datei- und Verzeichnisüberwachungstool für Änderungen


Watchman ist ein Open-Source- und plattformübergreifender Dateiüberwachungsdienst, der Dateien überwacht und aufzeichnet oder Aktionen ausführt, wenn sie sich ändern. Es wurde von Facebook entwickelt und läuft auf Linux, OS X, FreeBSD und Solaris. Es läuft in einem Client-Server-Modell und nutzt das Inotify-Dienstprogramm 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 Stammverzeichnis bezeichnet.
  • Es kann über die Befehlszeile oder eine im JSON-Format geschriebene Konfigurationsdatei konfiguriert werden.
  • Es zeichnet Änderungen in Protokolldateien auf.
  • Unterstützt das Abonnement von Dateiänderungen, die in einem Stammverzeichnis auftreten.
  • Ermöglicht die Abfrage eines Stammverzeichnisses nach Dateiänderungen seit der letzten Überprüfung oder nach dem aktuellen Status des Baums.
  • Es kann ein ganzes Projekt ansehen.

In diesem Artikel erklären wir, wie Sie watchman installieren und verwenden, um Dateien zu überwachen (zu überwachen) und aufzuzeichnen, wenn sie sich unter Linux ändern. Außerdem zeigen wir kurz, wie man ein Verzeichnis überwacht und ein Skript aufruft, wenn es sich ändert.

Watchman File Watching Service unter Linux installieren

Wir werden den Watchman-Dienst aus Quellen installieren, also installieren Sie zuerst diese erforderlichen Abhängigkeiten libssl-dev, autoconf, automake libtool, setuptools, python-devel und libfolly mit dem folgenden Befehl auf 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 der Erstellung von Watchman beginnen, indem Sie das Github-Repository herunterladen, in das lokale Repository verschieben, 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

Überwachen von Dateien und Verzeichnissen mit Watchman unter Linux

Watchman kann auf zwei Arten konfiguriert werden: (1) über die Befehlszeile, während der Daemon im Hintergrund läuft, oder (2) über eine im JSON-Format geschriebene Konfigurationsdatei.

Um ein Verzeichnis (z. B. ~/bin) auf Änderungen zu überwachen, führen Sie den folgenden Befehl aus.

watchman watch ~/bin/

Der folgende Befehl schreibt eine Konfigurationsdatei namens state unter /usr/local/var/run/watchman/-state/ im JSON-Format sowie ein Protokoll Datei mit dem Namen 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 definieren, welche Aktion ausgelöst werden soll, wenn ein Verzeichnis auf Änderungen überwacht wird. Im folgenden Befehl ist beispielsweise „test-trigger“ der Name des Triggers und ~bin/pav.sh das Skript, das aufgerufen wird, wenn Änderungen erkannt werden im überwachten Verzeichnis.

Zu Testzwecken erstellt das Skript pav.sh einfach eine Datei mit einem Zeitstempel (d. h. file.$time.txt) im selben Verzeichnis wo 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

Wenn Sie watchman ausführen, um ein Verzeichnis im Auge zu behalten, wird es zur Beobachtungsliste hinzugefügt und um es anzuzeigen, führen Sie den folgenden Befehl aus.

watchman watch-list 

Um die Triggerliste für einen root anzuzeigen, führen Sie den folgenden Befehl aus (ersetzen Sie ~/bin durch den Namen root).

watchman trigger-list ~/bin

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

ls

Deinstallation des Watchman-Dienstes unter Linux

Wenn Sie watchman deinstallieren möchten, wechseln 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, Protokolldateien in Echtzeit anzusehen oder zu überwachen
  3. fswatch – Überwacht Dateien und Verzeichnisänderungen unter Linux
  4. Pyintify – Überwachen Sie Dateisystemänderungen in Echtzeit unter Linux
  5. Inav – Sehen Sie sich Apache-Protokolle in Echtzeit unter Linux an

Watchman ist ein Open-Source-Dateiüberwachungsdienst, der Dateien und Datensätze überwacht oder Aktionen auslöst, wenn sie sich ändern. Nutzen Sie das Feedback-Formular unten, um Fragen zu stellen oder uns Ihre Gedanken mitzuteilen.