Présentation
Pour exécuter de manière répétée une commande ou une tâche à intervalles réguliers tout en travaillant sous Linux, vous pouvez utiliser des tâches cron ou des scripts bash. Cependant, Linux offre également une solution intégrée plus simple - la watch
commande.
Dans ce didacticiel, vous apprendrez à watch
la syntaxe de la commande, son fonctionnement et les différentes choses qu'elle peut vous aider à faire.
Prérequis
- Un système exécutant une distribution Linux (découvrez comment installer Ubuntu 20.04, comment installer CentOS 7 ou comment installer Arch Linux)
- Un compte avec des privilèges sudo
- Accès à la fenêtre du terminal/ligne de commande
Présentation de la commande Linux watch
La watch
command est un utilitaire Linux intégré utilisé pour exécuter des commandes définies par l'utilisateur à intervalles réguliers. Il efface temporairement tout le contenu du terminal et affiche la sortie de la commande jointe, ainsi que la date et l'heure actuelles du système.
Par défaut, la watch
La commande met à jour la sortie toutes les deux secondes. Appuyez sur Ctrl+C pour sortir de la sortie de la commande.
La watch
La commande est utile lorsque vous devez surveiller les modifications d'une sortie de commande au fil du temps. Cela inclut l'utilisation du disque, la disponibilité du système ou les erreurs de suivi.
Syntaxe de la commande de surveillance Linux
La watch
commande utilise la syntaxe suivante :
watch [option] [command]
Où :
[option]
:L'ajout d'une option modifie la façon dont lewatch
commande se comporte. Les options disponibles sont répertoriées ci-dessous.[command]
:une commande définie par l'utilisateur que vous souhaitez exécuter de manière répétée.
La watch
les options de commande incluent :
-n , --interval | Vous permet de spécifier l'intervalle entre les mises à jour de sortie. |
-d , --differences | Souligne les différences entre les mises à jour de sortie. |
-g , --chgexit | Quitter la watch commande lorsque la sortie de la commande définie par l'utilisateur change. |
-t , --no-title | Supprime l'en-tête indiquant l'intervalle, la commande et l'heure et la date actuelles. |
-b , --beep | Joue une alerte sonore (bip) si la commande se termine avec une erreur. |
-p , --precise | Tente d'exécuter la commande après le nombre exact de secondes défini par le --interval option. |
-e , --errexit | Arrête les mises à jour de sortie en cas d'erreur et quitte la commande après avoir appuyé sur une touche. |
-c , --color | Interprète les séquences de couleurs et de styles ANSI. |
-x , --exec | Passe la commande définie par l'utilisateur à exec , ce qui réduit le besoin de citations supplémentaires. |
-w , --no-linewrap | Désactive le retour à la ligne et tronque les longues lignes à la place. |
-h , --help | Affiche le texte d'aide et quitte. |
-v , --version | Affiche les informations de version et quitte. |
Exemples de commandes de surveillance Linux
Voici quelques façons d'utiliser la watch
options de commande pour obtenir différents résultats :
Exécuter la commande avec un intervalle personnalisé
Définissez un intervalle personnalisé pour exécuter une commande définie par l'utilisateur et afficher la sortie en utilisant le -n
ou --interval
choix :
watch -n [interval in seconds] [command]
Par exemple, pour afficher l'heure et la date du système toutes les 5 secondes, exécutez :
watch -n 5 date
Mise en surbrillance des modifications entre les mises à jour
Utilisez le -d
ou --difference
option pour mettre en surbrillance les modifications entre les mises à jour successives de la sortie :
watch -d [command]
Par exemple, affichez la date et l'heure du système dans l'intervalle par défaut de 2 secondes avec les modifications en surbrillance :
watch -d date
Passer =cumulative
au -d
si vous voulez que toutes les valeurs qui ont changé restent en surbrillance :
watch -d=cumulative date
Quitter sur changement
Le -g
ou --chgexit
option provoque la sortie de la commande watch s'il y a un changement dans la sortie :
watch -g [command]
Par exemple, l'ajout de la commande free surveille la consommation de mémoire de votre système et se termine si la valeur change :
watch -g free
Masquer l'en-tête de commande de la montre
Désactivez l'en-tête contenant l'intervalle de temps, la commande définie par l'utilisateur et l'heure système actuelle dans watch
sortie de la commande en utilisant le -t
ou --no-title
choix :
watch -t [command]
Revenons à l'exemple d'affichage de la date et de l'heure système, cette fois sans l'en-tête :
watch -t date
Alerte en cas d'erreur
La watch
La commande utilise le package beep pour émettre une alerte sonore si la mise à jour de la sortie échoue en raison d'une erreur. Pour ce faire, utilisez le -b
ou --beep
choix :
watch -b [command]
Utiliser des commandes complexes
La watch
La commande vous permet également d'utiliser des commandes définies par l'utilisateur plus complexes, avec leurs propres arguments et options. Une façon de faire est d'utiliser la barre oblique inverse ('\' ) symbole :
watch [options] \
L'utilisation de la commande ci-dessus vous amène à la ligne suivante du terminal, où vous devez ajouter la commande définie par l'utilisateur. Une fois que vous avez appuyé sur Entrée , il exécute la commande. Par exemple :
watch -n 5 \
echo "watch command example output"
Une autre option consiste à ajouter la commande définie par l'utilisateur entre guillemets simples :
watch [options] '[command]'
En utilisant l'exemple ci-dessus, la commande serait :
watch -n 5 'echo "watch command example output"'