Watchman - tiedostojen ja hakemistojen tarkkailutyökalu muutoksia varten


Watchman on avoimen lähdekoodin ja monialustainen tiedostojen katselupalvelu, joka tarkkailee tiedostoja ja tallentaa tai suorittaa toimintoja niiden muuttuessa. Sen on kehittänyt Facebook, ja se toimii Linuxissa, OS X:ssä, FreeBSD:ssä ja Solarisissa. Se toimii asiakas-palvelin-mallissa ja käyttää Linux-ytimen inotify-apuohjelmaa tehokkaamman ilmoituksen tarjoamiseen.

Watchmanin hyödyllisiä käsitteitä

  • Se seuraa rekursiivisesti yhtä tai useampaa hakemistopuuta.
  • Jokaista tarkkailtavaa hakemistoa kutsutaan juurihakemistoksi.
  • Se voidaan määrittää komentorivillä tai JSON-muodossa kirjoitetun konfigurointitiedoston kautta.
  • Se tallentaa muutokset lokitiedostoihin.
  • Tukee juurissa tapahtuvien tiedostomuutosten tilaamista.
  • Voit kysyä juurilta tiedoston muutoksia edellisen tarkistuksen jälkeen tai puun nykyistä tilaa.
  • Se voi katsoa koko projektin.

Tässä artikkelissa selitämme, kuinka watchmania asennetaan ja käytetään tiedostojen katseluun (valvontaan) ja tallentamiseen, kun ne muuttuvat Linuxissa. Esittelemme myös lyhyesti, kuinka katsella hakemistoa ja kutsua komentosarja sen muuttuessa.

Watchman-tiedostojen katselupalvelun asentaminen Linuxiin

Asennamme watchman-palvelun lähteistä, joten asenna ensin nämä vaaditut riippuvuudet libssl-dev, autoconf, automake libtool, setuptools, python-devel ja libfolly käyttämällä seuraavaa komentoa Linux-jakelussasi.

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

Kun tarvittavat riippuvuudet on asennettu, voit aloittaa watchmanin rakentamisen lataamalla sen github-tietovaraston, siirtymällä paikalliseen arkistoon, konfiguroida, rakentaa ja asentaa sen seuraavilla komennoilla.

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

Tiedostojen ja hakemistojen katselu Watchmanilla Linuxissa

Watchman voidaan määrittää kahdella tavalla: (1) komentorivillä demonin ollessa käynnissä taustalla tai (2) JSON-muodossa kirjoitetun määritystiedoston avulla.

Jos haluat katsella muutoksia hakemistoon (esim. ~/bin), suorita seuraava komento.

watchman watch ~/bin/

Seuraava komento kirjoittaa määritystiedoston nimeltä state kohtaan /usr/local/var/run/watchman/-state/, JSON-muodossa sekä lokin tiedosto nimeltä log samassa paikassa.

Voit tarkastella kahta tiedostoa käyttämällä cat-komentoa kuten show.

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

Voit myös määrittää, mitä toimintoa käynnistetään, kun hakemistoa tarkkaillaan muutosten varalta. Esimerkiksi seuraavassa komennossa 'test-trigger' on liipaisimen nimi ja ~bin/pav.sh on komentosarja, joka kutsutaan, kun muutoksia havaitaan. valvottavassa hakemistossa.

Testitarkoituksiin pav.sh-komentosarja luo yksinkertaisesti tiedoston, jossa on aikaleima (eli file.$time.txt) samaan hakemistoon missä skripti on tallennettu.

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

Tallenna tiedosto ja tee komentosarjasta suoritettava kuva kuvan mukaisesti.

chmod +x ~/bin/pav.sh

Käynnistä liipaisin suorittamalla seuraava komento.

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

Kun suoritat watchman-komennon seurataksesi hakemistoa, se on lisätty tarkkailuluetteloon ja tarkastellaksesi sitä, suorita seuraava komento.

watchman watch-list 

Jos haluat tarkastella juuren triggeriluetteloa, suorita seuraava komento (korvaa ~/bin root-nimellä).

watchman trigger-list ~/bin

Yllä olevan kokoonpanon perusteella aina, kun ~/bin-hakemisto muuttuu, sen sisään luodaan tiedosto, kuten file.2019-03-13.23:14:17.txt. ja voit tarkastella niitä ls-komennolla.

ls

Watchman-palvelun asennuksen poistaminen Linuxissa

Jos haluat poistaa watchmanin asennuksen, siirry lähdehakemistoon ja suorita seuraavat komennot:

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

Saat lisätietoja vierailemalla Watchman Github -tietovarastossa: https://github.com/facebook/watchman.

Saatat myös haluta lukea nämä seuraavat aiheeseen liittyvät artikkelit.

  1. Swatchdog – yksinkertainen lokitiedostojen tarkkailija reaaliajassa Linuxissa
  2. 4 tapaa katsella tai seurata lokitiedostoja reaaliajassa
  3. fswatch – Valvoo tiedostoja ja hakemistomuutoksia Linuxissa
  4. Pyintify – Tarkkaile tiedostojärjestelmän muutoksia reaaliajassa Linuxissa
  5. Inav – Katso Apache-lokeja reaaliajassa Linuxissa

Watchman on avoimen lähdekoodin tiedostojen katselupalvelu, joka tarkkailee tiedostoja ja tallentaa tai käynnistää toimintoja, kun ne muuttuvat. Alla olevalla palautelomakkeella voit esittää kysymyksiä tai jakaa ajatuksesi kanssamme.