Watchman - Alat za nadgledanje datoteka i direktorija za promjene


Watchman je servis za nadgledanje datoteka otvorenog koda i više platformi koji nadzire datoteke i bilježi ili izvodi radnje kada se mijenjaju. Razvio ga je Facebook i radi na Linuxu, OS X, FreeBSD i Solarisu. Radi u modelu klijent-poslužitelj i koristi inotify uslužni program Linux kernela za pružanje moćnijih obavijesti.

Korisni koncepti Watchmana

  • Rekurzivno prati jedno ili više stabala direktorija.
  • Svaki nadzirani direktorij naziva se korijen.
  • Može se konfigurirati putem naredbenog retka ili konfiguracijske datoteke napisane u JSON formatu.
  • Bilježi promjene u log datotekama.
  • Podržava pretplatu na promjene datoteka koje se događaju u korijenu.
  • Omogućuje vam postavljanje upita korijenu za promjene datoteke od zadnje provjere ili trenutno stanje stabla.
  • Može gledati cijeli projekt.

U ovom ćemo članku objasniti kako instalirati i koristiti watchmana za gledanje (nadgledanje) datoteka i snimanje kada se mijenjaju u Linuxu. Također ćemo ukratko pokazati kako gledati direktorij i pozvati skriptu kada se promijeni.

Instaliranje usluge Watchman File Watching Service u Linuxu

Instalirat ćemo uslugu watchman iz izvora, stoga prvo instalirajte ove potrebne ovisnosti libssl-dev, autoconf, automake libtool, setuptools, python-devel i libfolly koristeći sljedeću naredbu na vašoj Linux distribuciji.

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

Nakon instaliranja potrebnih ovisnosti, možete započeti s izgradnjom Watchmana preuzimanjem njegovog github repozitorija, premještanjem u lokalno spremište, konfiguracijom, izgradnjom i instaliranjem pomoću sljedećih naredbi.

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

Gledanje datoteka i direktorija s programom Watchman u Linuxu

Watchman se može konfigurirati na dva načina: (1) putem naredbenog retka dok demon radi u pozadini ili (2) putem konfiguracijske datoteke napisane u JSON formatu.

Da biste pratili promjene u direktoriju (npr. ~/bin), pokrenite sljedeću naredbu.

watchman watch ~/bin/

Sljedeća naredba piše konfiguracijsku datoteku pod nazivom state pod /usr/local/var/run/watchman/-state/, u JSON formatu kao i zapisnik datoteka pod nazivom log na istom mjestu.

Dvije datoteke možete pogledati pomoću naredbe cat kao show.

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

Također možete definirati koju radnju pokrenuti kada se direktorij nadzire radi promjena. Na primjer, u sljedećoj naredbi, 'test-trigger' je naziv okidača, a ~bin/pav.sh je skripta koja će se pozvati kada se otkriju promjene u imeniku koji se prati.

U svrhu testiranja, skripta pav.sh jednostavno stvara datoteku s vremenskom oznakom (tj. file.$time.txt) unutar istog direktorija gdje je skripta pohranjena.

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

Spremite datoteku i napravite skriptu izvršnom kao što je prikazano.

chmod +x ~/bin/pav.sh

Za pokretanje okidača pokrenite sljedeću naredbu.

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

Kada izvršite watchman da biste nadzirali direktorij, on je dodan na popis za praćenje i da biste ga vidjeli, pokrenite sljedeću naredbu.

watchman watch-list 

Za prikaz popisa okidača za root, pokrenite sljedeću naredbu (zamijenite ~/bin imenom root).

watchman trigger-list ~/bin

Na temelju gornje konfiguracije, svaki put kada se direktorij ~/bin promijeni, unutar njega se stvara datoteka kao što je file.2019-03-13.23:14:17.txt a možete ih vidjeti pomoću naredbe ls.

ls

Deinstaliranje usluge Watchman u Linuxu

Ako želite deinstalirati watchman, prijeđite u izvorni direktorij i pokrenite sljedeće naredbe:

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

Za više informacija posjetite Watchman Github repozitorij: https://github.com/facebook/watchman.

Također biste mogli pročitati sljedeće povezane članke.

  1. Swatchdog – Jednostavan nadzornik datoteka dnevnika u stvarnom vremenu u Linuxu
  2. 4 načina za gledanje ili praćenje datoteka dnevnika u stvarnom vremenu
  3. fswatch – Prati promjene datoteka i direktorija u Linuxu
  4. Pyintify – Pratite promjene datotečnog sustava u stvarnom vremenu u Linuxu
  5. Inav – Gledajte Apache zapise u stvarnom vremenu u Linuxu

Watchman je servis za nadgledanje datoteka otvorenog koda koji nadzire datoteke i zapise ili pokreće radnje kada se promjene. Koristite obrazac za povratne informacije u nastavku da postavite pitanja ili podijelite svoje mišljenje s nama.