Watchman - E Fichier a Verzeechnes Iwwerwaachungsinstrument fir Ännerungen


Watchman ass en Open Source a Cross-Plattform Datei Iwwerwaachungsservice deen d'Utilitéit vum Linux Kernel innotify fir eng méi mächteg Notifikatioun ze bidden.

  • Et kuckt rekursiv een oder méi Verzeechnesbam kucken.
  • All gekuckte Verzeechnes gëtt e Root genannt.
  • Et kann iwwer d'Kommando-Linn oder eng Konfiguratiounsdatei konfiguréiert ginn, déi am JSON-Format geschriwwe gëtt.
  • Et registréiert Ännerungen an de Logdateien.
  • Ënnerstëtzt Abonnement op Dateiännerungen déi an enger Root geschéien.
  • Erlaabt Iech eng Root no Dateieännerungen zanter Dir d'lescht kontrolléiert hutt, oder den aktuellen Zoustand vum Bam ze froen.
  • Et kann e ganze Projet kucken.

An dësem Artikel wäerte mir erkläre wéi Dir Watchman installéiert a benotzt fir Dateien ze kucken (monitoréieren) a Rekord wann se am Linux änneren. Mir wäerten och kuerz weisen wéi een e Verzeichnis kuckt an e Skript opruffe wann et ännert.

Installéiere vu Watchman File Watching Service a Linux

Mir installéieren Watchman Service vu Quellen, also installéiere fir d'éischt dës erfuerderlech Ofhängegkeeten libssl-dev, autoconf, automake libtool, setuptools, python-devel a libfolly andeems Dir folgend Kommando op Ärer Linux Verdeelung benotzt.

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

Wann erfuerderlech Ofhängegkeeten installéiert sinn, kënnt Dir ufänken Watchman ze bauen andeems Dir säi Github Repository eroflueden, an de lokalen Repository réckelt, konfiguréieren, bauen an installéiere mat de folgende Kommandoen.

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

Kuckt Dateien an Verzeechnes mat Watchman op Linux

Watchman kann op zwou Weeër konfiguréiert ginn: (1) iwwer d'Kommando-Linn wärend den Daemon am Hannergrond leeft oder (2) iwwer eng Konfiguratiounsdatei geschriwwen am JSON Format.

Fir e Verzeechnes (zB ~/bin) fir Ännerungen ze kucken, fuert de folgende Kommando.

$ watchman watch ~/bin/

De folgende Kommando schreift eng Konfiguratiounsdatei mam Numm Staat ënner /usr/local/var/run/watchman/-state/, am JSON-Format souwéi eng Logdatei mam Numm log op der selwechter Plaz.

Dir kënnt déi zwee Dateien mat dem Cat Kommando als Show kucken.

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

Dir kënnt och definéieren wéi eng Handlung ausléist wann e Verzeechnes fir Ännerungen gekuckt gëtt. Zum Beispill am folgende Kommando, 'Test-Trigger' ass den Numm vum Ausléiser an ~bin/pav.sh ass de Skript deen opgeruff gëtt wann Ännerunge festgestallt ginn. am Verzeechnes deen iwwerwaacht gëtt.

Fir Testzwecker erstellt de pav.sh Skript einfach e Fichier mat engem Zäitstempel (dh File.$time.txt) am selwechte Verzeechnes wou de Skript gespäichert ass.

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

Späichert d'Datei a maacht de Skript ausführbar wéi gewisen.

$ chmod +x ~/bin/pav.sh

Fir den Ausléiser ze starten, fuert de folgende Kommando.

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

Wann Dir Watchman ausféiert fir en Aa op e Verzeechnes ze halen, gëtt et op d'Iwwerwaachungslëscht bäigefüügt a fir se ze gesinn, fuert de folgende Kommando.

$ watchman watch-list 

Fir d'Ausléiserlëscht fir eng Root ze gesinn, fuert de folgende Kommando (ersetzt ~/bin mam root Numm).

$ watchman trigger-list ~/bin

Baséierend op der uewe genannter Konfiguratioun, all Kéier wann de ~/bin Verzeichnis ännert, gëtt e Fichier wéi file.2019-03-13.23:14:17.txt dobannen erstallt. an Dir kënnt se mat ls Kommando kucken.

$ ls

Deinstalléieren Watchman Service a Linux

Wann Dir Watchman deinstalléiere wëllt, gitt an de Quellverzeechnes a lafen déi folgend Kommandoen:

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

Fir méi Informatioun, besicht de Watchman Github Repository: https://github.com/facebook/watchman.

Dir kënnt och gären dës folgend Zesummenhang Artikelen liesen.

  1. Swatchdog - Einfach Log Datei Watcher an Echtzäit a Linux
  2. 4 Weeër fir Logdateien an Echtzäit ze kucken oder ze iwwerwaachen
  3. fswatch - Iwwerwaacht Dateien a Verzeechnes Ännerungen am Linux
  4. Pyintify - Monitor Dateisystem Ännerungen an Echtzäit a Linux
  5. Inav - Kuckt Apache Logbicher an Echtzäit a Linux

Watchman ass en Open Source Datei Iwwerwaachungsservice deen Dateien iwwerwaacht an ophëlt, oder Aktiounen ausléist, wa se änneren. Benotzt de Feedbackformular hei ënnen fir Froen ze stellen oder Är Gedanken mat eis ze deelen.