Watchman: uno strumento per il controllo di file e directory per le modifiche
Watchman è un servizio di monitoraggio di file open source e multipiattaforma che controlla i file e registra o esegue azioni quando cambiano. È sviluppato da Facebook e funziona su Linux, OS X, FreeBSD e Solaris. Funziona in un modello client-server e utilizza l'utilità inotify del kernel Linux per fornire una notifica più potente.
Concetti utili di guardiano
- Controlla ricorsivamente uno o più alberi di directory.
- Ogni directory controllata è chiamata root.
- Può essere configurato tramite la riga di comando o un file di configurazione scritto in formato JSON.
- Registra le modifiche nei file di registro.
- Supporta la sottoscrizione alle modifiche dei file che si verificano in una radice.
- Ti consente di interrogare una radice per le modifiche ai file dall'ultima volta che hai controllato o per lo stato corrente dell'albero.
- Può guardare un intero progetto.
In questo articolo spiegheremo come installare e utilizzare watchman per osservare (monitorare) i file e registrare quando cambiano in Linux. Dimostreremo anche brevemente come controllare una directory e invocare uno script quando cambia.
Installazione del servizio di sorveglianza file Watchman in Linux
Installeremo il servizio watchman dai sorgenti, quindi installa prima queste dipendenze richieste libssl-dev, autoconf, automake libtool, setuptools, python-devel e libfolly utilizzando il seguente comando sulla tua distribuzione Linux.
----------- 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'
Una volta installate le dipendenze richieste, puoi iniziare a creare watchman scaricando il suo repository github, spostandoti nel repository locale, configurandolo, compilandolo e installandolo utilizzando i seguenti comandi.
git clone https://github.com/facebook/watchman.git
cd watchman
git checkout v4.9.0
./autogen.sh
./configure
make
sudo make install
Guardare file e directory con Watchman in Linux
Watchman può essere configurato in due modi: (1) tramite la riga di comando mentre il demone è in esecuzione in background o (2) tramite un file di configurazione scritto in formato JSON.
Per controllare eventuali modifiche in una directory (ad esempio ~/bin
), esegui il seguente comando.
watchman watch ~/bin/
Il seguente comando scrive un file di configurazione chiamato state
in /usr/local/var/run/watchman/log
nella stessa posizione.
Puoi visualizzare i due file usando il comando cat come show.
cat /usr/local/var/run/watchman/aaronkilik-state/state
cat /usr/local/var/run/watchman/aaronkilik-state/log
Puoi anche definire quale azione attivare quando una directory viene controllata per le modifiche. Ad esempio, nel comando seguente, 'test-trigger
' è il nome del trigger e ~bin/pav.sh
è lo script che verrà richiamato quando vengono rilevate modifiche nella directory monitorata.
A scopo di test, lo script pav.sh
crea semplicemente un file con un timestamp (ovvero file.$time.txt
) all'interno della stessa directory dove è memorizzato lo script.
time=`date +%Y-%m-%d.%H:%M:%S`
touch file.$time.txt
Salvare il file e rendere eseguibile lo script come mostrato.
chmod +x ~/bin/pav.sh
Per avviare il trigger, esegui il comando seguente.
watchman -- trigger ~/bin 'test-trigger' -- ~/bin/pav.sh
Quando esegui watchman per tenere d'occhio una directory, viene aggiunta all'elenco di controllo e per visualizzarla, esegui il comando seguente.
watchman watch-list
Per visualizzare l'elenco dei trigger per una root, esegui il seguente comando (sostituisci ~/bin
con il nome root
).
watchman trigger-list ~/bin
In base alla configurazione precedente, ogni volta che la directory ~/bin
cambia, al suo interno viene creato un file come file.2019-03-13.23:14:17.txt
e puoi visualizzarli usando il comando ls.
ls
Disinstallazione del servizio Watchman in Linux
Se desideri disinstallare watchman, spostati nella directory dei sorgenti ed esegui i seguenti comandi:
sudo make uninstall
cd '/usr/local/bin' && rm -f watchman
cd '/usr/local/share/doc/watchman-4.9.0 ' && rm -f README.markdown
Per ulteriori informazioni, visitare il repository Github di Watchman: https://github.com/facebook/watchman.
Potrebbe interessarti anche leggere i seguenti articoli correlati.
- Swatchdog: semplice osservatore di file di registro in tempo reale in Linux
- 4 modi per guardare o monitorare i file di registro in tempo reale
- fswatch: monitora i file e le modifiche alle directory in Linux
- Pyintify: monitora le modifiche del file system in tempo reale in Linux
- Inav – Guarda i log di Apache in tempo reale in Linux
Watchman è un servizio di monitoraggio di file open source che controlla file e record o attiva azioni quando cambiano. Utilizza il modulo di feedback qui sotto per porre domande o condividere i tuoi pensieri con noi.