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.
Le système de noyau inotify
est ce dont vous avez besoin.
Installez inotify-tools
:
Sudo apt-get install inotify-tools
Mettre en place une montre:
inotifywait /path/to/directory --recursive --monitor
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.
--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