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/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.
- Swatchdog – Jednostavan promatrač datoteka dnevnika u realnom vremenu u Linuxu
- 4 načina za gledanje ili praćenje datoteka dnevnika u realnom vremenu
- fswatch – Nadzire datoteke i promjene direktorija u Linuxu
- Pyintify – Praćenje promjena sistema datoteka u realnom vremenu u Linuxu
- 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.