Fonctionnalités avancées de la commande Watch
Dans cette étape, vous allez découvrir certaines fonctionnalités avancées de la commande watch
qui peuvent rendre vos tâches de surveillance plus efficaces.
Commençons par explorer l'option -t
, qui désactive l'en-tête affichant la commande et l'heure actuelle :
watch -n 3 -t date
Remarquez que l'en-tête est maintenant masqué, offrant un affichage plus propre axé uniquement sur la sortie de la commande. Cela est utile lorsque vous souhaitez maximiser l'espace d'écran pour la sortie.
Appuyez sur Ctrl+C
pour quitter.
Ensuite, examinons comment utiliser watch
avec l'option -g
ou --chgexit
. Cette option fait sortir watch
lorsque la sortie de la commande change :
touch ~/project/test_change.txt
watch -g -n 1 "ls -l ~/project/test_change.txt"
Tandis que cette commande est en cours d'exécution, ouvrez un nouveau terminal et modifiez le fichier :
echo "hello" > ~/project/test_change.txt
La commande watch
dans le premier terminal devrait sortir automatiquement lorsqu'elle détecte le changement dans le fichier.
Créons un exemple plus pratique. Nous allons créer un script qui simule un fichier de journal avec des erreurs occasionnelles :
nano ~/project/simulate_logs.sh
Dans l'éditeur nano, tapez le contenu suivant :
#!/bin/bash
LOG_FILE=~/project/application.log
## Initialize log file
echo "Starting log simulation" > $LOG_FILE
## Generate simulated log entries
for i in {1..10}; do
echo "[$(date)] - INFO: Normal operation $i" >> $LOG_FILE
sleep 1
## Occasionally generate an error
if ((i % 3 == 0)); then
echo "[$(date)] - ERROR: Something went wrong!" >> $LOG_FILE
fi
done
echo "Log simulation complete" >> $LOG_FILE
Enregistrez et quittez nano (Ctrl+O
, Entrée, Ctrl+X
), puis rendez le script exécutable :
chmod +x ~/project/simulate_logs.sh
Maintenant, utilisons watch
avec grep
pour surveiller les messages d'erreur dans le fichier de journal :
watch -n 1 "grep ERROR ~/project/application.log || echo 'No errors found'"
Dans un autre terminal, exécutez le script de simulation de journal :
~/project/simulate_logs.sh
Observez comment le premier terminal affiche les messages d'erreur lorsqu'ils apparaissent dans le fichier de journal. Ceci est un exemple pratique d'utilisation de watch
pour la surveillance des journaux en temps réel.
Appuyez sur Ctrl+C
pour quitter la commande watch.
Enfin, voyons comment exécuter watch en arrière-plan et rediriger sa sortie vers un fichier :
watch -n 5 date > ~/project/date_output.txt 2>&1 &
Cette commande exécute la commande watch
en arrière-plan, mettant à jour la date toutes les 5 secondes et enregistrant la sortie dans un fichier. Vous pouvez vérifier le contenu du fichier :
cat ~/project/date_output.txt
Pour arrêter le processus watch en arrière-plan, trouvez son PID et tuez-le :
ps aux | grep "watch -n 5 date"
kill <PID> ## Remplacez <PID> par le numéro d'identifiant de processus réel
Ces exemples démontrent la polyvalence de la commande watch
pour diverses tâches de surveillance.