Watchman – failų ir katalogų stebėjimo įrankis pakeitimams


Watchman yra atvirojo kodo ir kelių platformų failų stebėjimo paslauga, kuri stebi failus ir įrašo arba atlieka veiksmus, kai jie pasikeičia. Jį sukūrė Facebook ir veikia Linux, OS X, FreeBSD ir Solaris sistemose. Jis veikia kliento-serverio modeliu ir naudoja „Linux“ branduolio inotify įrankį, kad pateiktų galingesnį pranešimą.

Naudingos „Watchman“ sąvokos

  • Jis rekursyviai stebi vieną ar daugiau katalogų medžių.
  • Kiekvienas stebimas katalogas vadinamas šaknine.
  • Jį galima sukonfigūruoti naudojant komandinę eilutę arba konfigūracijos failą, parašytą JSON formatu.
  • Jis įrašo pakeitimus į žurnalo failus.
  • Palaiko failų pakeitimų, vykstančių šaknyje, prenumeratą.
  • Leidžia teirautis šaknyje dėl failo pakeitimų po paskutinio patikrinimo arba dabartinės medžio būsenos.
  • Jis gali žiūrėti visą projektą.

Šiame straipsnyje paaiškinsime, kaip įdiegti ir naudoti watchman failams žiūrėti (stebėti) ir įrašyti, kai jie keičiasi sistemoje „Linux“. Taip pat trumpai parodysime, kaip žiūrėti katalogą ir iškviesti scenarijų, kai jis pasikeičia.

„Watchman“ failų stebėjimo paslaugos diegimas sistemoje „Linux“.

Įdiegsime paslaugą watchman iš šaltinių, todėl pirmiausia įdiekite šias būtinas priklausomybes libssl-dev, autoconf, automake libtool, setuptools, python-devel ir libfolly naudodami šią komandą savo Linux platinime.

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

Įdiegę reikiamas priklausomybes, galite pradėti kurti „watchman“ atsisiųsdami jo „github“ saugyklą, pereiti į vietinę saugyklą, sukonfigūruoti, sukurti ir įdiegti naudodami šias komandas.

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

Failų ir katalogų žiūrėjimas naudojant „Watchman“ sistemoje „Linux“.

Watchman galima konfigūruoti dviem būdais: (1) naudojant komandų eilutę, kai demonas veikia fone, arba (2) naudojant konfigūracijos failą, parašytą JSON formatu.

Norėdami stebėti katalogo (pvz., ~/bin) pakeitimus, paleiskite šią komandą.

watchman watch ~/bin/

Ši komanda įrašo konfigūracijos failą pavadinimu state, esantį /usr/local/var/run/watchman/-state/, JSON formatu ir žurnalą failą pavadinimu log toje pačioje vietoje.

Galite peržiūrėti du failus naudodami cat komandą kaip rodyti.

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

Taip pat galite apibrėžti, kokį veiksmą suaktyvinti, kai stebimas katalogo pasikeitimas. Pavyzdžiui, šioje komandoje 'test-trigger' yra aktyviklio pavadinimas, o ~bin/pav.sh yra scenarijus, kuris bus iškviestas, kai bus aptikti pakeitimai stebimame kataloge.

Bandymo tikslais scenarijus pav.sh tiesiog sukuria failą su laiko žyma (t. y. failas.$time.txt) tame pačiame kataloge kur yra saugomas scenarijus.

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

Išsaugokite failą ir padarykite scenarijų vykdytiną, kaip parodyta.

chmod +x ~/bin/pav.sh

Norėdami paleisti trigerį, paleiskite šią komandą.

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

Kai vykdote watchman, kad galėtumėte stebėti katalogą, jis įtrauktas į stebėjimo sąrašą ir jį peržiūrėti, paleiskite šią komandą.

watchman watch-list 

Norėdami peržiūrėti root aktyviklių sąrašą, paleiskite šią komandą (pakeiskite ~/bin pavadinimu root).

watchman trigger-list ~/bin

Remiantis aukščiau pateikta konfigūracija, kiekvieną kartą pasikeitus ~/bin katalogui, jame sukuriamas failas, pvz., file.2019-03-13.23:14:17.txt ir galite juos peržiūrėti naudodami komandą ls.

ls

„Watchman Service“ pašalinimas iš „Linux“.

Jei norite pašalinti watchman, pereikite į šaltinio katalogą ir vykdykite šias komandas:

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

Norėdami gauti daugiau informacijos, apsilankykite Watchman Github saugykloje: https://github.com/facebook/watchman.

Taip pat galbūt norėsite perskaityti šiuos susijusius straipsnius.

  1. „Swatchdog“ – paprasta žurnalo failų stebėjimo priemonė realiuoju laiku sistemoje „Linux“.
  2. 4 būdai žiūrėti arba stebėti žurnalo failus realiuoju laiku
  3. fswatch – stebi failų ir katalogų pakeitimus sistemoje „Linux“.
  4. Pyintify – stebėkite failų sistemos pokyčius realiuoju laiku sistemoje „Linux“.
  5. „Inav“ – žiūrėkite „Apache“ žurnalus realiuoju laiku sistemoje „Linux“.

Watchman yra atvirojo kodo failų stebėjimo paslauga, kuri stebi failus ir įrašo arba suaktyvina veiksmus, kai jie pasikeičia. Norėdami užduoti klausimų arba pasidalyti savo mintimis, naudokite toliau pateiktą atsiliepimų formą.