web-dev-qa-db-fra.com

Surveiller les modifications du contenu du dossier

Je peux surveiller les modifications de contenu d'un fichier à l'aide de la commande tail -f

Existe-t-il une méthode similaire pour surveiller les modifications d’une structure de répertoires de la même manière que tail -f surveille le fichier?

J'ai un long processus en cours qui ajoute un fichier à un certain chemin sous un répertoire et je souhaite suivre les entrées de fichier au fur et à mesure de son (ou de leurs) écriture (s) dans les répertoires et sous-répertoires.

16
johan.i.zahri

Le système de noyau inotify est ce dont vous avez besoin.

  1. Installez inotify-tools:

    Sudo apt-get install inotify-tools
    
  2. Mettre en place une montre:

    inotifywait /path/to/directory --recursive --monitor
    
  3. Asseyez-vous et regardez la sortie.


De man inotifywait :

-m, --monitor
   Instead of exiting  after  receiving  a  single  event,  execute
   indefinitely.   The default behaviour is to exit after the first
   event occurs.
-r, --recursive
   Watch all subdirectories of any directories passed as arguments.
   Watches will be set up recursively to an unlimited depth.   Sym‐
   bolic  links  are  not  traversed.  Newly created subdirectories
   will also be watched.

Vous pouvez utiliser l'option --event pour surveiller des événements spécifiques, tels que la création, la modification, etc.

25
muru

--events n'est pas le filtre, vous devez utiliser --event. Par exemple, voici la ligne de commande pour surveiller les événements de création/modification:

# inotifywait . --recursive --monitor --event CREATE --event MODIFY

Alors je vois:

Setting up watches.  Beware: since -r was given, this may take a while!

Et voici le format du flux:

[path] [event] [file]

par exemple.

./.mozilla/firefox/b4ar08t6.default/ MODIFY cookies.sqlite-wal
./.mozilla/firefox/b4ar08t6.default/ MODIFY cookies.sqlite-wal
./.mozilla/firefox/b4ar08t6.default/ MODIFY cookies.sqlite-wal
6
Selly