Vyhledávání na webu

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/-state/ ve formátu JSON a také protokol soubor s názvem 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.

  1. Swatchdog – Jednoduchý Log File Watcher v reálném čase v Linuxu
  2. 4 způsoby, jak sledovat nebo monitorovat soubory protokolu v reálném čase
  3. fswatch – Monitoruje změny souborů a adresářů v Linuxu
  4. Pyintify – Monitorujte změny souborového systému v reálném čase v Linuxu
  5. 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.