Watchman - alat za praćenje datoteka i direktorija za promjene


Watchman je usluga za gledanje datoteka otvorenog koda i više platformi koja prati datoteke i snima ili izvršava radnje kada se one promijene. Razvio ga je Facebook i radi na Linuxu, OS X, FreeBSD i Solarisu. Radi u klijent-server modelu i koristi inotify uslužni program Linux kernela kako bi pružio snažnije obavještenje.

Korisni koncepti Watchmana

  • Rekurzivno prati jedno ili više stabala direktorija.
  • Svaki gledani direktorij naziva se root.
  • Može se konfigurirati putem komandne linije ili konfiguracijske datoteke napisane u JSON formatu.
  • Zapisuje promjene u log fajlovima.
  • Podržava pretplatu na promjene datoteka koje se dešavaju u root-u.
  • Omogućava vam da upitate korijen za promjene datoteke od posljednje provjere ili trenutno stanje stabla.
  • Može gledati cijeli projekat.

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

Instaliranje Watchman File Watching Service u Linux

Instalirat ćemo uslugu watchman iz izvora, pa 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'  

Kada se instaliraju potrebne ovisnosti, možete početi graditi watchman preuzimanjem njegovog github repozitorija, premjestiti se u lokalno spremište, konfigurirati, izgraditi i instalirati 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 Watchman-om u Linuxu

Watchman se može konfigurirati na dva načina: (1) putem komandne linije 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 upisuje konfiguracijsku datoteku pod nazivom state pod /usr/local/var/run/watchman/-state/, u JSON formatu, kao i dnevnik fajl pod nazivom log na istoj lokaciji.

Možete pogledati dvije datoteke koristeći cat komandu 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 treba pokrenuti kada se direktorij promatra radi promjena. Na primjer, u sljedećoj naredbi, 'test-trigger' je naziv okidača, a ~bin/pav.sh je skripta koja će biti pozvana kada se otkriju promjene u imeniku koji se prati.

Za potrebe testiranja, pav.sh skripta jednostavno kreira datoteku sa 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

Sačuvajte datoteku i učinite skriptu izvršnom kao što je prikazano.

chmod +x ~/bin/pav.sh

Da biste pokrenuli okidač, pokrenite sljedeću naredbu.

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

Kada izvršite watchman da držite na oku direktorij, on se dodaje na listu za praćenje i da ga pregledate, pokrenite sljedeću naredbu.

watchman watch-list 

Da vidite listu okidača za root, pokrenite sljedeću naredbu (zamijenite ~/bin sa root imenom).

watchman trigger-list ~/bin

Na osnovu gornje konfiguracije, svaki put kada se direktorij ~/bin promijeni, unutar njega se kreira datoteka kao što je file.2019-03-13.23:14:17.txt i možete ih pogledati pomoću komande ls.

ls

Deinstaliranje Watchman servisa u Linuxu

Ako želite deinstalirati watchman, idite 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 spremište: https://github.com/facebook/watchman.

Možda biste željeli pročitati i ove sljedeće povezane članke.

  1. Swatchdog – Jednostavan promatrač datoteka dnevnika u realnom vremenu u Linuxu
  2. 4 načina za gledanje ili praćenje datoteka dnevnika u realnom vremenu
  3. fswatch – Nadzire datoteke i promjene direktorija u Linuxu
  4. Pyintify – Praćenje promjena sistema datoteka u realnom vremenu u Linuxu
  5. Inav – Gledajte Apache logove u realnom vremenu u Linuxu

Watchman je usluga za gledanje datoteka otvorenog koda koja prati datoteke i zapise, ili pokreće radnje kada se one promijene. Koristite obrazac za povratne informacije ispod da postavite pitanja ili podijelite svoje mišljenje s nama.