GNU/Linux >> Linux Esercitazione >  >> Linux

Come monitorare un albero di directory completo per le modifiche in Linux?

Ho fatto qualcosa di simile usando inotifywait strumento:

#!/bin/bash
while true; do

inotifywait -e modify,create,delete -r /path/to/your/dir && \
<some command to execute when a file event is recorded>

done

Ciò imposterà i controlli di directory ricorsivi sull'intero albero e ti consentirà di eseguire un comando quando qualcosa cambia. Se vuoi solo visualizzare le modifiche, puoi aggiungere il -m flag per metterlo in modalità monitor.


Per quanto ne so, non c'è altro modo che impostare ricorsivamente un inotify watch su ogni directory.

Detto questo, non rimarrai senza descrittori di file perché inotify non deve riservare un fd per controllare un file o una directory (il suo predecessore, dnotify , soffriva di questa limitazione). inotify utilizza invece "descrittori di controllo".

Secondo la documentazione per inotifywatch, il limite predefinito è 8192 descrittori di controllo e puoi aumentarlo scrivendo il nuovo valore a /proc/sys/fs/inotify/max_user_watches .


$ inotifywait -m -r /path/to/your/directory

Questo comando è sufficiente per controllare la directory in modo ricorsivo per tutti gli eventi come accesso, apertura, creazione, eliminazione...


Linux
  1. Come aggiornare un collegamento simbolico Linux

  2. Come creare una directory condivisa per tutti gli utenti in Linux

  3. Come ottenere la dimensione della directory in Linux

  4. Si dice che un file stia scomparendo:come monitorare un file per l'eliminazione in Linux

  5. Come posso ottenere a livello di codice lo spazio libero su disco per una directory in Linux

Come guardare Hulu su Linux

Come monitorare le modifiche ai file utilizzando fswatch in Linux

Come visualizzare la struttura ad albero delle directory in Linux

Come impostare uno sfondo diverso per ogni monitor in Linux

Come copiare la directory su Linux

Comandi della directory Linux:una guida completa