Si vous vous retrouvez à exécuter la même commande encore et encore, il existe peut-être une meilleure solution.

Parfois, vous devez exécuter à plusieurs reprises une commande ou un programme pour surveiller divers aspects de votre système, tels que les processus en cours, l'utilisation de l'espace disque ou les connexions des utilisateurs. La commande Linux watch vous permet d'automatiser ces tâches sans avoir à les exécuter manuellement encore et encore.

À l'aide de cette commande, vous pouvez surveiller les activités du système en temps réel telles que les connexions des utilisateurs, l'état du réseau, l'utilisation de la mémoire et du processeur, l'espace disque, etc. Voyons comment utiliser la commande watch sous Linux.

Qu'est-ce que la commande Watch?

La commande watch Linux exécute une commande ou un programme spécifié à plusieurs reprises, à intervalles réguliers, et affiche sa sortie dans le terminal. Cela vous permet d'observer les changements dans la sortie en temps réel. Il actualise la sortie à chaque intervalle, écrasant la sortie précédente de la commande. Par défaut, la commande se répète toutes les deux secondes et continue jusqu'à ce que vous l'arrêtiez manuellement à l'aide de

instagram viewer
Ctrl+C.

Regarder la syntaxe des commandes

La syntaxe de la commande watch est :

watch options 

Il existe diverses options de ligne de commande disponibles à utiliser avec la commande watch. Si vous exécutez la commande watch sans aucune option, elle exécutera la commande spécifiée toutes les deux secondes. Par exemple, ce qui suit vous montrera le résultat de la commande ls :

watch ls -l ~/

La sortie vous montrera les modifications apportées à la liste des répertoires si un fichier est créé, supprimé ou change de taille, tout en actualisant la sortie toutes les deux secondes.

Exécuter une commande toutes les X secondes à l'aide de la montre

Vous pouvez modifier l'intervalle de mise à jour de la commande watch. Cela signifie que vous pouvez dire à la commande watch d'attendre x secondes avant de répéter la commande. Pour modifier l'intervalle de mise à jour, utilisez le -n option suivie de l’intervalle de temps en secondes.

watch -n 

Par exemple, pour exécuter une commande toutes les 5 secondes, exécutez :

watch -n 5 

Mettre en évidence les modifications entre les mises à jour

La commande watch écrase sa sortie à chaque actualisation. En utilisant le -d option, vous pouvez également mettre en évidence les modifications entre la sortie précédente et la sortie mise à jour.

watch -d

Par défaut, la commande watch affiche un en-tête en haut de chaque sortie contenant l'intervalle de mise à jour, le nom de la commande ainsi que la date et l'heure actuelles du système. Vous pouvez supprimer l'en-tête de la sortie en utilisant le -t option:

watch -t 

Jouer des bips en cas d'erreur

Lorsqu'un processus Linux termine son exécution, il renvoie un code de sortie. Par convention, la valeur est 0 en cas de réussite et non nulle pour représenter une erreur. La commande de montre -b L'option émet un bip si la commande renvoie une sortie non nulle.

Supposons que vous souhaitiez surveiller sshd.service et être averti lorsque le service s'arrête; vous utiliseriez :

watch -b sudo systemctl status sshd.service

Cette commande émettra un bip lorsque le service s'arrêtera. Le bip s'arrêtera lorsque le service reprendra. Pour tester cela, ouvrez une autre fenêtre de terminal et arrêtez le service. Cela émettra des bips constants jusqu'à ce que vous redémarriez le service. Cependant, pour utiliser cette fonctionnalité, vous devez avoir installé le package beep sur votre système.

Quittez la commande watch lors du changement de sortie

Vous pouvez également demander à la commande watch d'arrêter de s'exécuter et de quitter lorsque le résultat de la commande change. Vous pouvez le faire en utilisant le -g option. Cette option est très utile dans les scénarios où vous attendez certains changements dans la sortie.

Une fois la sortie modifiée, la commande watch s'arrêtera. Vous pouvez combiner cette utilisation avec la commande echo pour afficher un message à l'écran.

Par exemple, considérons un scénario dans lequel vous attendez qu'un fichier arrive dans votre répertoire. La commande suivante surveillera le répertoire du fichier spécifié. Dès son arrivée, la commande watch cessera de fonctionner et le message le fichier est arrivé s'affichera sur le terminal.

watch -g "ls -l | grep filename" && echo "file arrived"

Un autre exemple utile est une notification lorsqu'un utilisateur spécifique se connecte à votre système :

watch -g "who | grep username" && echo "username logged in"

Cette commande surveillera la sortie du commande who qui répertorie les utilisateurs connectés. Une fois l'utilisateur connecté, la commande watch s'arrêtera et affichera un message sur le terminal.

De même, vous pouvez demander à la commande watch d'arrêter un service lorsque des modifications sont apportées à un fichier. Gardez à l’esprit que lorsque vous utilisez une chaîne de commandes redirigées, vous devrez mettre la commande entière entre guillemets.

Surveillez les activités sur votre système Linux

Si vous effectuez le même processus à plusieurs reprises, envisagez d'utiliser la commande watch pour l'automatiser. Cela vous évite de taper fréquemment les commandes pour voir ce qui a changé.

Vous pouvez également utiliser la commande watch avec d'autres commandes Linux pour surveiller les ressources et les activités du système et suivre les modifications apportées aux fichiers ou aux répertoires.