Watchman - Un instrument de urmărire a fișierelor și a directorului pentru modificări


Watchman este un serviciu de vizionare a fișierelor cu sursă deschisă și multiplatformă care urmărește fișierele și înregistrează sau efectuează acțiuni atunci când acestea se modifică. Este dezvoltat de Facebook și rulează pe Linux, OS X, FreeBSD și Solaris. Acesta rulează într-un model client-server și folosește utilitarul inotify al nucleului Linux pentru a oferi o notificare mai puternică.

Concepte utile de Watchman

  • Acesta urmărește recursiv vizionarea unuia sau mai multor arbori de directoare.
  • Fiecare director urmărit se numește rădăcină.
  • Poate fi configurat prin linia de comandă sau un fișier de configurare scris în format JSON.
  • Înregistrează modificările aduse fișierelor jurnal.
  • Acceptă abonamentul la modificările fișierelor care apar într-o rădăcină.
  • Vă permite să interogați o rădăcină pentru modificările fișierelor de la ultima verificare sau starea curentă a arborelui.
  • Poate urmări un întreg proiect.

În acest articol, vom explica cum să instalați și să utilizați watchman pentru a viziona (monitoriza) fișierele și a înregistra când se schimbă în Linux. De asemenea, vom demonstra pe scurt cum să urmăriți un director și să invocați un script atunci când acesta se schimbă.

Instalarea serviciului Watchman File Watching în Linux

Vom instala serviciul watchman din surse, așa că mai întâi instalați aceste dependențe necesare libssl-dev, autoconf, automake libtool, setuptools, python-devel și libfolly folosind următoarea comandă pe distribuția dvs. Linux.

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

Odată instalate dependențele necesare, puteți începe să construiți watchman prin descărcarea depozitului său github, mutați în depozitul local, configurați, construiți și instalați folosind următoarele comenzi.

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

Vizionarea fișierelor și directoarelor cu Watchman în Linux

Watchman poate fi configurat în două moduri: (1) prin linia de comandă în timp ce demonul rulează în fundal sau (2) printr-un fișier de configurare scris în format JSON.

Pentru a urmări modificările unui director (de ex. ~/bin), rulați următoarea comandă.

watchman watch ~/bin/

Următoarea comandă scrie un fișier de configurare numit state sub /usr/local/var/run/watchman/-state/, în format JSON, precum și un jurnal fișier numit log în aceeași locație.

Puteți vizualiza cele două fișiere folosind comanda cat așa cum se arată.

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

De asemenea, puteți defini ce acțiune să declanșați atunci când un director este urmărit pentru modificări. De exemplu, în următoarea comandă, „test-trigger” este numele declanșatorului și ~bin/pav.sh este scriptul care va fi invocat atunci când sunt detectate modificări în directorul monitorizat.

În scopuri de testare, scriptul pav.sh creează pur și simplu un fișier cu un stamp (adică file.$time.txt) în același director unde este stocat scriptul.

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

Salvați fișierul și faceți scriptul executabil așa cum se arată.

chmod +x ~/bin/pav.sh

Pentru a lansa declanșatorul, executați următoarea comandă.

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

Când executați watchman pentru a urmări un director, acesta este adăugat la lista de urmărire și pentru a-l vizualiza, executați următoarea comandă.

watchman watch-list 

Pentru a vedea lista de declanșare pentru o rădăcină, rulați următoarea comandă (înlocuiți ~/bin cu numele rădăcină).

watchman trigger-list ~/bin

Pe baza configurației de mai sus, de fiecare dată când directorul ~/bin se modifică, în interiorul acestuia este creat un fișier precum file.2019-03-13.23:14:17.txt și le puteți vizualiza folosind comanda ls.

ls

Dezinstalarea serviciului Watchman în Linux

Dacă doriți să dezinstalați watchman, mutați-vă în directorul sursă și executați următoarele comenzi:

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

Pentru mai multe informații, vizitați depozitul Watchman Github: https://github.com/facebook/watchman.

De asemenea, s-ar putea să doriți să citiți următoarele articole conexe.

  1. Swatchdog – Observator simplu de fișiere jurnal în timp real în Linux
  2. 4 moduri de a viziona sau monitoriza fișierele jurnal în timp real
  3. fswatch – Monitorizează fișierele și modificările directorului în Linux
  4. Pyintify – Monitorizează modificările sistemului de fișiere în timp real în Linux
  5. Inav – Urmăriți logurile Apache în timp real în Linux

Watchman este un serviciu de vizionare a fișierelor cu sursă deschisă care urmărește fișierele și înregistrează sau declanșează acțiuni atunci când acestea se modifică. Utilizați formularul de feedback de mai jos pentru a pune întrebări sau pentru a ne împărtăși părerile dvs.