Il arrive souvent que vous deviez attendre que quelque chose se termine, par exemple :
- Un téléchargement de fichier.
- Créer ou extraire un fichier tar.
- Une tâche Ansible.
Certains de ces processus ont une sorte d'indication de progrès, mais parfois le processus est exécuté à travers une couche d'abstraction, et la seule façon de mesurer le progrès est à travers ses effets secondaires. Certains d'entre eux pourraient ê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.
- La tâche 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 de la 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 l'empaqueter pour qu'il soit toujours disponible. Heureusement, d'autres développeurs open source sont déjà passés par là et l'ont fait.
Le résultat est la commande watch
.
Plus de ressources Linux
- Aide-mémoire des commandes Linux
- Aide-mémoire des commandes Linux avancées
- Cours en ligne gratuit :Présentation technique de RHEL
- Aide-mémoire sur le réseau Linux
- Aide-mémoire SELinux
- Aide-mémoire sur les commandes courantes de Linux
- Que sont les conteneurs Linux ?
- Nos derniers articles Linux
Installation de la montre
La 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.
Utiliser la montre
La watch
La commande exécute périodiquement une commande et affiche sa sortie. Il a quelques subtilités de terminal texte, donc seule la dernière sortie est à l'écran.
L'utilisation la plus simple est :watch <command>
.
Par exemple, préfixer le docker ps
commande avec watch
fonctionne comme ceci :
$ watch docker ps
La watch
commande, et quelques astuces créatives en ligne de commande Unix, 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 gérez 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 surbrillance "en permanence" pour savoir lesquels étudier 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. Le -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 chercher un modèle 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
La 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écharger l'aide-mémoire pour garder la syntaxe et les options utiles à portée de main.