Watchman - Et fil- og katalogovervåkingsverktøy for endringer


Watchman er en åpen kildekode og filovervåkingstjeneste på tvers av plattformer som ser på filer og registrerer eller utfører handlinger når de endres. Den er utviklet av Facebook og kjører på Linux, OS X, FreeBSD og Solaris. Den kjører i en klient-server-modell og bruker inotify-verktøyet til Linux-kjernen for å gi en kraftigere varsling.

Nyttige konsepter for Watchman

  • Den ser rekursivt på å se ett eller flere katalogtrær.
  • Hver overvåket katalog kalles en rot.
  • Den kan konfigureres via kommandolinjen eller en konfigurasjonsfil skrevet i JSON-format.
  • Den registrerer endringer i loggfiler.
  • Støtter abonnement på filendringer som skjer i en rot.
  • Lar deg spørre en rot for filendringer siden du sist sjekket, eller gjeldende status for treet.
  • Den kan se et helt prosjekt.

I denne artikkelen vil vi forklare hvordan du installerer og bruker watchman for å se (overvåke) filer og registrere når de endres i Linux. Vi vil også kort demonstrere hvordan du ser på en katalog og påkaller et skript når det endres.

Installere Watchman File Watching Service i Linux

Vi vil installere watchman-tjenesten fra kilder, så installer først disse nødvendige avhengighetene libssl-dev, autoconf, automake libtool, setuptools, python-devel og libfolly ved å bruke følgende kommando på din Linux-distribusjon.

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

Når nødvendige avhengigheter er installert, kan du begynne å bygge watchman ved å laste ned github-depotet, flytte inn i det lokale depotet, konfigurere, bygge og installere det ved å bruke følgende kommandoer.

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

Se på filer og kataloger med Watchman i Linux

Watchman kan konfigureres på to måter: (1) via kommandolinjen mens daemonen kjører i bakgrunnen eller (2) via en konfigurasjonsfil skrevet i JSON-format.

For å se på en katalog (f.eks. ~/bin) for endringer, kjør følgende kommando.

watchman watch ~/bin/

Følgende kommando skriver en konfigurasjonsfil kalt state under /usr/local/var/run/watchman/-state/, i JSON-format samt en logg fil kalt log på samme plassering.

Du kan vise de to filene ved å bruke cat-kommandoen som show.

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

Du kan også definere hvilken handling som skal utløses når en katalog overvåkes for endringer. For eksempel i følgende kommando er 'test-trigger' navnet på triggeren og ~bin/pav.sh er skriptet som vil bli påkalt når endringer oppdages i katalogen som overvåkes.

For testformål oppretter pav.sh-skriptet ganske enkelt en fil med et tidsstempel (dvs. file.$time.txt) i samme katalog hvor skriptet er lagret.

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

Lagre filen og gjør skriptet kjørbart som vist.

chmod +x ~/bin/pav.sh

For å starte utløseren, kjør følgende kommando.

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

Når du kjører watchman for å holde øye med en katalog, legges den til i overvåkningslisten og for å se den, kjør følgende kommando.

watchman watch-list 

For å se triggerlisten for en root, kjør følgende kommando (erstatt ~/bin med root-navnet).

watchman trigger-list ~/bin

Basert på konfigurasjonen ovenfor, hver gang ~/bin-katalogen endres, opprettes en fil som file.2019-03-13.23:14:17.txt inne i den. og du kan se dem ved å bruke ls-kommandoen.

ls

Avinstallerer Watchman Service i Linux

Hvis du vil avinstallere watchman, gå inn i kildekatalogen og kjør følgende kommandoer:

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

For mer informasjon, besøk Watchman Github-depotet: https://github.com/facebook/watchman.

Du vil kanskje også lese disse følgende relaterte artiklene.

  1. Swatchdog – Enkel loggfilovervåking i sanntid i Linux
  2. 4 måter å se eller overvåke loggfiler i sanntid
  3. fswatch – Overvåker filer og katalogendringer i Linux
  4. Pyintify – Overvåk filsystemendringer i sanntid i Linux
  5. Inav – Se Apache-logger i sanntid i Linux

Watchman er en filovervåkingstjeneste med åpen kildekode som overvåker filer og registrerer, eller utløser handlinger, når de endres. Bruk tilbakemeldingsskjemaet nedenfor for å stille spørsmål eller dele tankene dine med oss.