Regarder les commandes et les tâches avec la commande Linux watch

Il y a plusieurs fois où vous devez attendre que quelque chose se termine, comme :
- Un fichier à télécharger.
- Création ou extraction d’un fichier tar.
- Un travail Ansible.
Certains de ces processus ont une sorte d’indication de progression, mais parfois le processus est exécuté à travers une couche d’abstraction, et la seule façon de mesurer la progression est à travers ses effets secondaires. Certains d’entre eux peuvent être :
- Un fichier en cours de téléchargement ne cesse de croître.
- Un répertoire extrait d’une archive tar se remplit de fichiers.
- Le travail Ansible crée un conteneur.
Vous pouvez interroger toutes ces choses avec des commandes comme celles-ci :
$ ls -l downloaded-file
$ find . | wc -l
$ podman ps
$ docker ps
Mais exécuter ces commandes encore et encore, même si c’est avec la commodité de l’historique de Bash et du Flèche vers le haut, est fastidieux.
Une autre approche consiste à écrire un petit script Bash pour automatiser ces commandes pour vous :
while :
do
docker ps
sleep 2
done
Mais de tels scripts peuvent aussi devenir fastidieux à écrire. Vous pouvez écrire un petit script générique et le mettre en package, afin qu’il soit toujours à votre disposition. Heureusement, d’autres développeurs open source ont déjà été là et l’ont fait.
Le résultat est la commande watch
.
Contents
Installation de la montre
Les watch
la commande fait partie du procps-ng
package, donc si vous êtes sous Linux, vous l’avez déjà installé.
Sur macOS, installez watch
en utilisant MacPorts ou Homebrew. Sous Windows, utilisez Chocolatey.
Utilisation de la montre
Les watch
La commande exécute périodiquement une commande et affiche sa sortie. Il a quelques subtilités de terminal de texte, donc seule la dernière sortie est à l’écran.
L’utilisation la plus simple est : watch <command>
.
Par exemple, en préfixant le docker ps
commande avec watch
fonctionne comme ceci :
$ watch docker ps
Les watch
commande, et quelques astuces de ligne de commande Unix créatives, peuvent générer des tableaux de bord ad-hoc. Par exemple, pour compter les événements d’audit :
$ watch 'grep audit: /var/log/kern.log |wc -l'
Dans le dernier exemple, il est probablement utile s’il y a une indication visuelle que le nombre d’événements d’audit a changé. Si un changement est attendu, mais que vous voulez que quelque chose ait l’air “différent”, watch --differences
fonctionne bien. Il met en évidence les différences par rapport à la dernière exécution. Cela fonctionne particulièrement bien si vous utilisez plusieurs fichiers, vous pouvez donc facilement voir lequel a changé.
Si des changements ne sont pas attendus, vous pouvez demander qu’ils soient mis en évidence “en permanence” pour savoir lesquels enquêter en utilisant watch --differences=permanent
. C’est souvent plus utile.
Fréquence de contrôle
Enfin, la commande peut parfois être gourmande en ressources et ne doit pas être exécutée trop fréquemment. Les -n
paramètre contrôle la fréquence. La montre utilise deux secondes par défaut, mais watch -n 10
peut être approprié pour quelque chose de plus gourmand en ressources, comme rechercher un motif dans n’importe quel fichier d’un sous-répertoire :
$ watch -n 10 'find . -type f | xargs grep suspicious-pattern'
Regarder une commande avec watch
Les watch
La commande est utile pour de nombreuses tâches d’administration système ad-hoc où vous devez attendre une étape fastidieuse, sans barre de progression, avant de passer à la suivante. Bien que ce ne soit pas une situation idéale, watch
peut l’améliorer légèrement et vous donner le temps de commencer à travailler sur ces notes pour la rétrospective ! Téléchargez le aide-mémoire pour garder une syntaxe et des options utiles à portée de main.