Watchman — narzędzie do monitorowania plików i katalogów pod kątem zmian
Watchman to wieloplatformowa usługa oglądania plików o otwartym kodzie źródłowym, która obserwuje pliki i rejestruje je lub wykonuje działania w przypadku ich zmiany. Został opracowany przez Facebook i działa na systemach Linux, OS X, FreeBSD i Solaris. Działa w modelu klient-serwer i wykorzystuje narzędzie inotify jądra Linuksa, aby zapewnić skuteczniejsze powiadomienia.
Przydatne pojęcia dotyczące stróża
- Rekurencyjnie obserwuje jedno lub więcej drzew katalogów.
- Każdy obserwowany katalog nazywany jest katalogiem głównym.
- Można go skonfigurować za pomocą wiersza poleceń lub pliku konfiguracyjnego zapisanego w formacie JSON.
- Rejestruje zmiany w plikach dziennika.
- Obsługuje subskrypcję zmian plików zachodzących w katalogu głównym.
- Umożliwia wysyłanie zapytań do katalogu głównego o zmiany w plikach od czasu ostatniego sprawdzania lub o bieżący stan drzewa.
- Może oglądać cały projekt.
W tym artykule wyjaśnimy, jak zainstalować i używać programu watchman do oglądania (monitorowania) plików i rejestrowania ich zmian w systemie Linux. Pokrótce zademonstrujemy także, jak przeglądać katalog i wywoływać skrypt w przypadku jego zmiany.
Instalowanie usługi oglądania plików Watchman w systemie Linux
Zainstalujemy usługę watchman ze źródeł, więc najpierw zainstaluj te wymagane zależności libssl-dev, autoconf, automake libtool, setuptools, python-devel i libfolly za pomocą następującego polecenia w swojej dystrybucji Linuksa.
----------- 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 zainstalowaniu wymaganych zależności możesz rozpocząć budowanie watchmana, pobierając jego repozytorium github, przejdź do lokalnego repozytorium, skonfiguruj, zbuduj i zainstaluj go za pomocą następujących poleceń.
git clone https://github.com/facebook/watchman.git
cd watchman
git checkout v4.9.0
./autogen.sh
./configure
make
sudo make install
Oglądanie plików i katalogów za pomocą Watchmana w systemie Linux
Watchmana można skonfigurować na dwa sposoby: (1) za pomocą wiersza poleceń, gdy demon działa w tle lub (2) za pomocą pliku konfiguracyjnego zapisanego w formacie JSON.
Aby obejrzeć katalog (np. ~/bin
) pod kątem zmian, uruchom następującą komendę.
watchman watch ~/bin/
Poniższe polecenie zapisuje plik konfiguracyjny o nazwie state
w lokalizacji /usr/local/var/run/watchman/log
w tej samej lokalizacji.
Możesz wyświetlić oba pliki za pomocą polecenia cat jako show.
cat /usr/local/var/run/watchman/aaronkilik-state/state
cat /usr/local/var/run/watchman/aaronkilik-state/log
Możesz także zdefiniować, jaka akcja ma zostać wywołana, gdy katalog będzie obserwowany pod kątem zmian. Na przykład w poniższym poleceniu „test-trigger
” to nazwa wyzwalacza, a ~bin/pav.sh
to skrypt, który zostanie wywołany po wykryciu zmian w monitorowanym katalogu.
Do celów testowych skrypt pav.sh
po prostu tworzy plik z znacznikiem czasu (tj. file.$time.txt
) w tym samym katalogu gdzie przechowywany jest skrypt.
time=`date +%Y-%m-%d.%H:%M:%S`
touch file.$time.txt
Zapisz plik i uczyń skrypt wykonywalnym, jak pokazano.
chmod +x ~/bin/pav.sh
Aby uruchomić wyzwalacz, uruchom następujące polecenie.
watchman -- trigger ~/bin 'test-trigger' -- ~/bin/pav.sh
Kiedy uruchamiasz watchman, aby mieć oko na katalog, dodany do listy obserwowanych i aby go wyświetlić, uruchom następujące polecenie.
watchman watch-list
Aby wyświetlić listę wyzwalaczy dla root, uruchom następujące polecenie (zamień ~/bin
na nazwę root
).
watchman trigger-list ~/bin
Bazując na powyższej konfiguracji, przy każdej zmianie katalogu ~/bin
tworzony jest w nim plik taki jak file.2019-03-13.23:14:17.txt
i możesz je wyświetlić za pomocą polecenia ls.
ls
Odinstalowywanie usługi Watchman w systemie Linux
Jeśli chcesz odinstalować watchman, przejdź do katalogu źródłowego i uruchom następujące polecenia:
sudo make uninstall
cd '/usr/local/bin' && rm -f watchman
cd '/usr/local/share/doc/watchman-4.9.0 ' && rm -f README.markdown
Aby uzyskać więcej informacji, odwiedź repozytorium Watchman Github: https://github.com/facebook/watchman.
Możesz także przeczytać następujące powiązane artykuły.
- Swatchdog – prosty obserwator plików dziennika w czasie rzeczywistym w systemie Linux
- 4 sposoby oglądania lub monitorowania plików dziennika w czasie rzeczywistym
- fswatch – monitoruje zmiany w plikach i katalogach w systemie Linux
- Pyintify – Monitoruj zmiany w systemie plików w czasie rzeczywistym w systemie Linux
- Inav – Oglądaj logi Apache w czasie rzeczywistym w systemie Linux
Watchman to usługa przeglądania plików o otwartym kodzie źródłowym, która obserwuje pliki i nagrania lub uruchamia działania w przypadku ich zmiany. Skorzystaj z poniższego formularza opinii, aby zadać pytania lub podzielić się z nami swoimi przemyśleniami.