Weboldal keresés

Watchman – Fájl- és könyvtárfigyelő eszköz a változtatásokhoz


A Watchman egy nyílt forráskódú és többplatformos fájlmegfigyelő szolgáltatás, amely figyeli a fájlokat és rögzíti, vagy műveleteket hajt végre, amikor megváltoznak. A Facebook fejlesztette, és Linux, OS X, FreeBSD és Solaris rendszeren fut. Kliens-szerver modellben fut, és a Linux kernel inotify segédprogramját használja, hogy hatékonyabb értesítést biztosítson.

A Watchman hasznos fogalmai

  • Rekurzív módon figyeli egy vagy több címtárfát.
  • Minden figyelt könyvtárat gyökérnek nevezünk.
  • A parancssorból vagy egy JSON formátumban írt konfigurációs fájlból konfigurálható.
  • Rögzíti a naplófájlok változásait.
  • Támogatja a gyökérben előforduló fájlmódosításokra való feliratkozást.
  • Lehetővé teszi a gyökér lekérdezését a legutóbbi ellenőrzés óta végrehajtott fájlmódosítások vagy a fa jelenlegi állapota miatt.
  • Egy teljes projektet meg tud nézni.

Ebben a cikkben elmagyarázzuk, hogyan kell telepíteni és használni a watchman alkalmazást a fájlok megtekintésére (figyelésére), valamint azok változásának rögzítésére Linux alatt. Azt is röviden bemutatjuk, hogyan kell egy könyvtárat nézni, és hogyan hívhatunk meg egy szkriptet, amikor megváltozik.

Watchman File Watching Service telepítése Linux alatt

A watchman szolgáltatást forrásokból fogjuk telepíteni, ezért először telepítse ezeket a szükséges függőségeket libssl-dev, autoconf, automake libtool, setuptools, python-devel és libfolly a következő parancs használatával a Linux disztribúcióján.

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

A szükséges függőségek telepítése után megkezdheti a watchman felépítését a github tároló letöltésével, áttérhet a helyi tárolóba, konfigurálhatja, összeállíthatja és telepítheti a következő parancsokkal.

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

Fájlok és könyvtárak megtekintése a Watchman segítségével Linuxon

A Watchman kétféleképpen konfigurálható: (1) a parancssorban, miközben a démon a háttérben fut, vagy (2) egy JSON formátumban írt konfigurációs fájlon keresztül.

Ha egy könyvtárat (pl. ~/bin) szeretne végrehajtani, futtassa a következő parancsot.

watchman watch ~/bin/

A következő parancs egy state nevű konfigurációs fájlt ír a /usr/local/var/run/watchman/-state/ alatt, JSON formátumban, valamint egy naplót log nevű fájl ugyanazon a helyen.

A két fájlt a cat paranccsal tekintheti meg show-ként.

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

Meghatározhatja azt is, hogy milyen műveletet indítson el, ha egy könyvtár változásait figyeli. Például a következő parancsban a 'teszt-trigger' az eseményindító neve, a ~bin/pav.sh pedig az a szkript, amelyet a rendszer a változások észlelésekor hív meg. a figyelt könyvtárban.

Tesztelési célokra a pav.sh szkript egyszerűen létrehoz egy fájlt időbélyeggel (azaz file.$time.txt) ugyanabban a könyvtárban ahol a szkriptet tárolják.

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

Mentse el a fájlt, és tegye futtathatóvá a szkriptet az ábra szerint.

chmod +x ~/bin/pav.sh

A trigger elindításához futtassa a következő parancsot.

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

Amikor végrehajtja a watchman parancsot, hogy szemmel tartsa a címtárat, amely felkerült a figyelési listára, és megtekintheti, futtassa a következő parancsot.

watchman watch-list 

A root triggerlistájának megtekintéséhez futtassa a következő parancsot (a ~/bin helyére cserélje ki a root nevet).

watchman trigger-list ~/bin

A fenti konfiguráció alapján minden alkalommal, amikor a ~/bin könyvtár megváltozik, egy olyan fájl jön létre benne, mint például a file.2019-03-13.23:14:17.txt és megtekintheti őket az ls paranccsal.

ls

A Watchman szolgáltatás eltávolítása Linux alatt

Ha el szeretné távolítani a watchman alkalmazást, lépjen a forráskönyvtárba, és futtassa a következő parancsokat:

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

További információért keresse fel a Watchman Github tárházát: https://github.com/facebook/watchman.

Érdemes elolvasni a következő kapcsolódó cikkeket is.

  1. Swatchdog – Egyszerű naplófájl-figyelő valós időben Linux alatt
  2. 4 módszer a naplófájlok valós idejű megtekintésére vagy figyelésére
  3. fswatch – Figyeli a fájlokat és a könyvtárváltozásokat Linux alatt
  4. Pyintify – Valós időben figyeli a fájlrendszer változásait Linuxban
  5. Inav – Nézze meg az Apache naplóit valós időben Linux alatt

A Watchman egy nyílt forráskódú fájlmegfigyelő szolgáltatás, amely figyeli a fájlokat és rögzíti, vagy műveleteket indít el, ha azok megváltoznak. Az alábbi visszajelzési űrlap segítségével kérdéseket tehet fel, vagy megoszthatja velünk gondolatait.