Watchman - Nástroj pro sledování souborů a adresářů pro změny
Watchman je open source a multiplatformní služba pro sledování souborů, která sleduje soubory a zaznamenává nebo provádí akce, když se změní. Je vyvinut společností Facebook a běží na systémech Linux, OS X, FreeBSD a Solaris. Běží v modelu klient-server a využívá utilitu inotify linuxového jádra k poskytování výkonnějšího upozornění.
Užitečné pojmy Watchman
- Rekurzivně sleduje sledování jednoho nebo více adresářových stromů.
- Každý sledovaný adresář se nazývá kořenový adresář.
- Lze jej nakonfigurovat pomocí příkazového řádku nebo konfiguračního souboru napsaného ve formátu JSON.
- Zaznamenává změny do souborů protokolu.
- Podporuje předplatné změn souborů, ke kterým dochází v kořenovém adresáři.
- Umožňuje vám dotazovat kořenový adresář na změny souborů od poslední kontroly nebo na aktuální stav stromu.
- Může sledovat celý projekt.
V tomto článku si vysvětlíme, jak nainstalovat a používat watchmana ke sledování (monitorování) souborů a zaznamenávání jejich změn v Linuxu. Krátce si také ukážeme, jak sledovat adresář a vyvolat skript, když se změní.
Instalace Watchman File Watching Service v Linuxu
Službu watchman nainstalujeme ze zdrojů, takže nejprve nainstalujte tyto požadované závislosti libssl-dev, autoconf, automake libtool, setuptools, python-devel a libfolly pomocí následujícího příkazu ve vaší distribuci Linuxu.
----------- 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'
Po instalaci požadovaných závislostí můžete začít budovat watchmana stažením jeho úložiště github, přesunem do místního úložiště, konfigurací, sestavením a instalací pomocí následujících příkazů.
git clone https://github.com/facebook/watchman.git
cd watchman
git checkout v4.9.0
./autogen.sh
./configure
make
sudo make install
Sledování souborů a adresářů pomocí Watchman v Linuxu
Watchman lze konfigurovat dvěma způsoby: (1) pomocí příkazového řádku, když démon běží na pozadí, nebo (2) pomocí konfiguračního souboru napsaného ve formátu JSON.
Chcete-li sledovat změny v adresáři (např. ~/bin
), spusťte následující příkaz.
watchman watch ~/bin/
Následující příkaz zapíše konfigurační soubor s názvem state
pod /usr/local/var/run/watchman/log
ve stejném umístění.
Tyto dva soubory můžete zobrazit pomocí příkazu cat as show.
cat /usr/local/var/run/watchman/aaronkilik-state/state
cat /usr/local/var/run/watchman/aaronkilik-state/log
Můžete také definovat, jaká akce se má spustit, když se v adresáři sledují změny. Například v následujícím příkazu je 'test-trigger
' název spouštěče a ~bin/pav.sh
je skript, který bude vyvolán při zjištění změn. ve sledovaném adresáři.
Pro testovací účely skript pav.sh
jednoduše vytvoří soubor s časovým razítkem (tj. file.$time.txt
) ve stejném adresáři kde je skript uložen.
time=`date +%Y-%m-%d.%H:%M:%S`
touch file.$time.txt
Uložte soubor a vytvořte spustitelný skript, jak je znázorněno.
chmod +x ~/bin/pav.sh
Chcete-li spustit spoušť, spusťte následující příkaz.
watchman -- trigger ~/bin 'test-trigger' -- ~/bin/pav.sh
Když spustíte watchman, abyste sledovali adresář, byl přidán do seznamu sledovaných položek a abyste si jej mohli prohlédnout, spusťte následující příkaz.
watchman watch-list
Chcete-li zobrazit seznam spouštěčů pro root, spusťte následující příkaz (nahraďte ~/bin
názvem root
).
watchman trigger-list ~/bin
Na základě výše uvedené konfigurace se při každé změně adresáře ~/bin
v něm vytvoří soubor jako file.2019-03-13.23:14:17.txt
a můžete je zobrazit pomocí příkazu ls.
ls
Odinstalace Watchman Service v Linuxu
Pokud chcete odinstalovat watchmana, přejděte do zdrojového adresáře a spusťte následující příkazy:
sudo make uninstall
cd '/usr/local/bin' && rm -f watchman
cd '/usr/local/share/doc/watchman-4.9.0 ' && rm -f README.markdown
Pro více informací navštivte repozitář Watchman Github: https://github.com/facebook/watchman.
Možná byste si také rádi přečetli následující související články.
- Swatchdog – Jednoduchý Log File Watcher v reálném čase v Linuxu
- 4 způsoby, jak sledovat nebo monitorovat soubory protokolu v reálném čase
- fswatch – Monitoruje změny souborů a adresářů v Linuxu
- Pyintify – Monitorujte změny souborového systému v reálném čase v Linuxu
- Inav – Sledujte protokoly Apache v reálném čase v Linuxu
Watchman je služba pro sledování souborů s otevřeným zdrojovým kódem, která sleduje soubory a zaznamenává nebo spouští akce, když se změní. Pomocí formuláře pro zpětnou vazbu níže můžete položit otázky nebo se s námi podělit o své myšlenky.