Watchman - Għodda għall-Għassa ta' Fajl u Direttorju għal Bidliet


Watchman huwa servizz ta' sorveljanza ta' fajls ta' sors miftuħ u cross-platform li jinnotifika l-utilità tal-kernel tal-Linux biex jipprovdi notifika aktar qawwija.

  • Jsegwi b'mod rikorsiv siġra tad-direttorju waħda jew aktar.
  • Kull direttorju osservat jissejjaħ għerq.
  • Jista' jiġi kkonfigurat permezz tal-linja tal-kmand jew fajl ta' konfigurazzjoni miktub f'format JSON.
  • Tirreġistra l-bidliet fil-fajls tal-ġurnal.
  • Jappoġġja l-abbonament għal bidliet fil-fajl li jseħħu fl-għerq.
  • Jippermettilek tfittex għerq għal bidliet fil-fajl minn meta ċċekkjajt l-aħħar, jew l-istat attwali tas-siġra.
  • Jista' jara proġett sħiħ.

F'dan l-artikolu, se nispjegaw kif tinstalla u tuża watchman biex tara (immonitorja) fajls u nirreġistra meta jinbidlu fil-Linux. Aħna ser nuru wkoll fil-qosor kif tara direttorju u tinvoka script meta tinbidel.

Installazzjoni ta' Watchman File Watching Service fil-Linux

Aħna se ninstallaw servizz ta 'watchman minn sorsi, għalhekk l-ewwel installa dawn id-dipendenzi meħtieġa libssl-dev, autoconf, automake libtool, setuptools, python-devel u libfolly billi tuża l-kmand li ġej fuq id-distribuzzjoni Linux tiegħek.

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

Ladarba d-dipendenzi meħtieġa jiġu installati, tista 'tibda tibni watchman billi tniżżel ir-repożitorju tal-github tagħha, tidħol fir-repożitorju lokali, tikkonfigura, tibni u tinstallah billi tuża l-kmandi li ġejjin.

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

Jaraw Fajls u Direttorji ma' Watchman fil-Linux

Watchman jista 'jiġi kkonfigurat b'żewġ modi: (1) permezz tal-linja tal-kmand waqt li d-daemon ikun qed jaħdem fl-isfond jew (2) permezz ta' fajl ta 'konfigurazzjoni miktub f'format JSON.

Biex tara direttorju (eż. ~/bin) għal bidliet, mexxi l-kmand li ġej.

$ watchman watch ~/bin/

Il-kmand li ġej jikteb fajl ta' konfigurazzjoni msejjaħ state taħt /usr/local/var/run/watchman/-state/, f'format JSON kif ukoll fajl log imsejjaħ log fl-istess post.

Tista 'tara ż-żewġ fajls billi tuża l-kmand tal-qtates kif juru.

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

Tista 'wkoll tiddefinixxi x'azzjoni għandha tiskatta meta direttorju jiġi osservat għal bidliet. Pereżempju fil-kmand li ġej, 'test-trigger' huwa l-isem tal-grillu u ~bin/pav.sh huwa l-iskript li se jiġi invokat meta jinstabu bidliet fid-direttorju li qed jiġi mmonitorjat.

Għal skopijiet ta’ test, l-iskrittura pav.sh sempliċement toħloq fajl b’timestamp (jiġifieri file.$time.txt) fl-istess direttorju fejn jinħażen l-iskritt.

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

Issejvja l-fajl u agħmel l-iskrittura eżekutibbli kif muri.

$ chmod +x ~/bin/pav.sh

Biex tniedi l-grillu, mexxi l-kmand li ġej.

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

Meta tesegwixxi watchman biex iżżomm għajnejk fuq direttorju, hija miżjuda mal-lista tal-għassa u biex taraha, mexxi l-kmand li ġej.

$ watchman watch-list 

Biex tara l-lista ta' attivazzjoni għal għerq, mexxi l-kmand li ġej (issostitwixxi ~/bin bl-isem root).

$ watchman trigger-list ~/bin

Ibbażat fuq il-konfigurazzjoni ta’ hawn fuq, kull darba li jinbidel id-direttorju ~/bin, jinħoloq ġewwa fih fajl bħal file.2019-03-13.23:14:17.txt u tista 'tarahom billi tuża ls kmand.

$ ls

Iddiżinstalla Watchman Service fil-Linux

Jekk trid tneħħi watchman, mur fid-direttorju tas-sors u mexxi l-kmandi li ġejjin:

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

Għal aktar informazzjoni, żur ir-repożitorju ta’ Watchman Github: https://github.com/facebook/watchman.

Inti tista 'wkoll tixtieq taqra dawn l-artikoli relatati li ġejjin.

  1. Swatchdog – Sempliċi Log File Watcher f'Ħin Real fil-Linux
  2. 4 Modi kif Tara jew Tissorvelja Log Files f'Ħin Real
  3. fswatch – Tissorvelja Fajls u Bidliet fid-Direttorju fil-Linux
  4. Pyintify – Tissorvelja l-Bidliet tas-Sistema tal-Fajls f'Ħin Real fil-Linux
  5. Inav – Watch Apache Logs f'Ħin Real fil-Linux

Watchman huwa servizz ta' ħars ta' fajls ta' sors miftuħ li jħares fajls u rekords, jew iqanqal azzjonijiet, meta jinbidlu. Uża l-formola ta' feedback hawn taħt biex tistaqsi mistoqsijiet jew taqsam il-ħsibijiet tiegħek magħna.