GNU/Linux >> Linux Esercitazione >  >> Linux

Come monitorare le modifiche ai file utilizzando fswatch in Linux

Fswatch è un'utilità di monitoraggio delle modifiche dei file multipiattaforma gratuita e open source che ci avvisa quando il contenuto dei file o delle directory specificati viene modificato o modificato. Usando fswatch, possiamo facilmente monitorare le modifiche apportate a file e/o directory. Supporta tutti i sistemi operativi, inclusi GNU/Linux, *BSDs, Mac OS X, Solaris e Microsoft Windows ecc. In questa breve guida, lascia che ti mostri come monitorare le modifiche ai file utilizzando fswatch in sistemi operativi simili a Unix.

Tipi di monitoraggio

fswatch implementa i seguenti tipi di monitor.

  • Un monitor basato sull'API File System Events di Apple OS X.
  • Un monitor basato su kqueue, un'interfaccia di notifica introdotta in FreeBSD 4.1.
  • Un monitor basato sull'API di notifica degli eventi di file del kernel Solaris e dei suoi derivati.
  • Un monitor basato su inotify, un sottosistema del kernel Linux che segnala le modifiche del file system alle applicazioni.
  • Un monitor basato su ReadDirectoryChangesW, un'API di Microsoft Windows che segnala le modifiche a una directory.
  • Un monitor che esegue periodicamente statistiche sul file system, salva i tempi di modifica dei file in memoria e calcola manualmente le modifiche al file system.

Caratteristiche

Per quanto riguarda le caratteristiche, possiamo elencare quanto segue:

  • Utility multipiattaforma e open source.
  • Supporto per molte API specifiche del sistema operativo.
  • Monitoraggio di directory ricorsivo.
  • Filtraggio dei percorsi tramite inclusione ed esclusione di espressioni regolari.
  • Formato record personalizzabile.
  • Supporto per eventi di inattività periodici.
  • E molti.

Monitoraggio delle modifiche ai file utilizzando fswatch in Linux

Poiché l'utilità fswatch non è disponibile nei repository predefiniti della maggior parte delle distribuzioni Linux, è necessario compilare e installare manualmente l'ultima versione dal sorgente come descritto di seguito.

Prima di compilare, devi installare gli strumenti di sviluppo nella tua distribuzione Linux. Per installare gli strumenti di sviluppo su varie distribuzioni Linux, fare riferimento alla seguente guida.

  • Come installare gli strumenti di sviluppo in Linux

Quindi, scarica il file sorgente di fswatch da qui .

$ wget https://github.com/emcrisostomo/fswatch/releases/download/1.9.3/fswatch-1.9.3.tar.gz

Estrai il tarball scaricato:

$ tar -zxvf fswatch-1.9.3.tar.gz

Vai alla cartella del progetto:

$ cd fswatch-1.9.3/

Infine, compila e installa fswatch eseguendo i seguenti comandi uno per uno.

$ ./configure
$ make
$ sudo make install

Infine, esegui il comando seguente per aggiornare i collegamenti e la cache alle librerie dinamiche:

$ sudo ldconfig

Se non esegui il comando precedente, potresti ricevere il seguente errore nei sistemi GNU/Linux.

fswatch: error while loading shared libraries: libfswatch.so.6: cannot open shared object file: No such file or directory

Utilizzo di fswatch

L'uso di fswatch non è un grosso problema. La sintassi tipica di fswatch è:

$ fswatch [options] ... path-0 ... path-n

Per testare il funzionamento di fswatch, apri due finestre di Terminale (chiamiamola Terminale 1 e Terminale 2 ).

Nel Terminale 1, esegui il comando fswatch per monitorare la directory $HOME.

$ fswatch /home/sk/

E, nel Terminale 2, esegui alcune operazioni come la creazione di file/cartelle, l'eliminazione di file, la modifica di file ecc.

Qualunque cosa tu faccia nel Terminal 2 verrà notificata sul Terminal 1. Dai un'occhiata ai seguenti screenshot.

Terminale 1 - Il comando fswatch è in esecuzione e le modifiche ai file vengono monitorate:

Monitora le modifiche ai file utilizzando fswatch

Terminale 2 - Apporta alcune modifiche casuali a file/cartelle:

Per impostazione predefinita fswatch sceglierà il miglior monitor disponibile sulla piattaforma attuale, in termini di prestazioni e consumo di risorse. In Linux, il monitor predefinito è inotify .

Per elencare i monitor disponibili nella piattaforma corrente (cioè Linux nel nostro caso), eseguire:

$ fswatch -M

Oppure,

$ fswatch --list-monitors

Risultato di esempio:

inotify_monitor
poll_monitor

Per monitorare un file o una directory specifica con una particolare opzione di monitoraggio, eseguire:

$ swatch -m kqueue_monitor /home/sk/

Per impostazione predefinita, fswatch continuerà a monitorare le modifiche al file finché non lo fermerai manualmente richiamando CTRL+C chiavi.

Puoi anche uscire da fswatch dopo aver ricevuto il primo set di eventi specificando l'opzione -1 come mostrato nel comando seguente:

$ fswatch -1 /home/sk/

Questo comando uscirà subito dopo la ricezione del primo insieme di eventi.

fswatch monitorerà le modifiche in tutti i file/cartelle nel percorso specificato. Se vuoi guardare solo le modifiche apportate nelle directory, usa -d opzione.

$ fswatch -d /home/sk/

Naturalmente, ci sono più opzioni. Fare riferimento alle pagine man o alla pagina della documentazione del progetto per istruzioni dettagliate.

$ man fswatch

Linux
  1. Come rinominare un file in Linux?

  2. Come dividere iso o file usando il comando "split" in Linux

  3. Come creare file sparsi in Linux usando il comando 'dd'

  4. Come allegare un file usando il comando mail su Linux?

  5. Come posso monitorare i dati su una porta seriale in Linux?

Come monitorare i server Linux utilizzando CloudStats

Come creare un collegamento simbolico in Linux usando il comando Ln

Come monitorare l'uptime del sistema Linux utilizzando Uptimed

Come bloccare un file di testo in Linux usando il comando flock

Come collegare simbolicamente un file in Linux

Come scaricare file utilizzando Wget tramite proxy in Linux