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/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.
- Swatchdog – Egyszerű naplófájl-figyelő valós időben Linux alatt
- 4 módszer a naplófájlok valós idejű megtekintésére vagy figyelésére
- fswatch – Figyeli a fájlokat és a könyvtárváltozásokat Linux alatt
- Pyintify – Valós időben figyeli a fájlrendszer változásait Linuxban
- 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.