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

  • FrançaisFrançais



  • 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.

    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.

    Source

    N'oubliez pas de voter pour cet article !
    1 Star2 Stars3 Stars4 Stars5 Stars (No Ratings Yet)
    Loading...

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée.