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/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.
- Swatchdog – Jednostavan nadzornik datoteka dnevnika u stvarnom vremenu u Linuxu
- 4 načina za gledanje ili praćenje datoteka dnevnika u stvarnom vremenu
- fswatch – Prati promjene datoteka i direktorija u Linuxu
- Pyintify – Pratite promjene datotečnog sustava u stvarnom vremenu u Linuxu
- 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.