La commande Watch est un outil vraiment génial et s'avère pratique dans de nombreuses situations. La commande watch peut être utilisée pour surveiller périodiquement n'importe quel fichier ou script. Il s'exécute toutes les 2 secondes par défaut et il fonctionnera jusqu'à ce qu'il soit interrompu.
# watch -h Usage: watch [-dhntv] [--differences[=cumulative]] [--help] [--interval=[n]] [--no-title] [--version] [command] -d, --differences[=cumulative] highlight changes between updates (cumulative means highlighting is cumulative) -h, --help print a summary of the options -n, --interval=[seconds] seconds to wait between updates -v, --version print the version number -t, --no-title turns off showing the header
La syntaxe de base de la commande watch est :
# watch [-n seconds] [-d] [command]
Ici,
-d flag will highlight the differences between successive updates. -n flag is to specify the interval. The default value is 2 seconds.
Voici un exemple de sortie :
# watch -n 10 -d ls -lt Every 10.0s: ls -lt Tue Feb 14 12:27:43 2017 total 0 -rw-r--r-- 1 root root 0 Feb 14 12:27 new_file_just_created -rw-r--r-- 1 root root 0 Feb 14 10:46 file1 -rw-r--r-- 1 root root 0 Feb 14 10:46 file2 -rw-r--r-- 1 root root 0 Feb 14 10:46 file3
Ici,
Every 10.0s : is the time interval to run the watch command. i.e. 10 seconds. ls -lt : is the command to be executed every 10 seconds. Tue Feb 14 12:27:43 2017 : is the current date and time.
Exemple 1 :Surveillance d'un fichier changeant dynamiquement comme /proc/meminfo
Il existe un moyen de surveiller n'importe quel fichier sur le système avec la commande watch.
La commande :
# watch -n 10 -d cat /proc/meminfo
produirait une sortie de l'état meminfo toutes les 10 secondes sur l'écran et mettra en évidence tout changement.
Exemple 2 :rechercher le changement dans le contenu d'un répertoire
Une autre excellente utilisation de la commande watch est de garder un œil sur le contenu du répertoire et de voir si un nouveau fichier est ajouté ou supprimé.
# watch -d ls -lt
-lt commutateur dans la commande ls affiche le dernier fichier modifié en haut.
Exemple 3 :Suppression du titre/en-tête de la sortie.
Si vous ne souhaitez pas imprimer l'en-tête dans la sortie de la commande watch, vous pouvez utiliser l'option –no-title ou -t.
# watch -t -d ls -lt total 0 -rw-r--r-- 1 root root 0 Feb 14 10:47 new_file_just_created -rw-r--r-- 1 root root 0 Feb 14 10:46 file1 -rw-r--r-- 1 root root 0 Feb 14 10:46 file2 -rw-r--r-- 1 root root 0 Feb 14 10:46 file3
Exemple 4 :Mise en évidence de la différence cumulée
Si vous souhaitez mettre en évidence la différence cumulative dans la sortie, vous pouvez utiliser le commutateur -d=cumulative dans la commande. Par exemple :
La sortie après l'ajout d'un nouveau fichier – new_file1 :
La sortie après l'ajout d'un autre nouveau fichier - new_file2 :