GNU/Linux >> Tutoriels Linux >  >> Linux

Regarder :répéter les commandes Unix ou les scripts Shell toutes les N secondes

Question : Parfois, je veux répéter une commande (ou un script shell) fréquemment (toutes les quelques secondes). Existe-t-il un meilleur moyen d'exécuter une commande unix toutes les n secondes (au lieu de continuer à taper la même commande manuellement) ?

Réponse : En utilisant la commande watch, vous pouvez exécuter une commande et afficher sa sortie toutes les quelques secondes. Ceci est très utile lors de la surveillance de l'utilisation de la mémoire, de l'utilisation du disque, etc.,

Vous pouvez exécuter n'importe quelle commande Unix en utilisant la commande watch. La commande Watch sera exécutée jusqu'à ce que vous la terminiez par CTRL+C ou que vous arrêtiez le processus.

Exemple 1 :Surveiller la création d'un fichier à l'aide de watch ls

Lorsque vous vous attendez à ce qu'un fichier soit créé par un processus en arrière-plan, ou lorsque vous vous attendez à ce qu'un fichier journal continue d'augmenter en taille, vous pouvez finir par exécuter la commande ls plusieurs fois. Au lieu de cela, vous pouvez utiliser la commande watch, qui exécutera la commande ls toutes les 2 secondes comme indiqué ci-dessous.

$ watch ls
Every 2.0s: ls                                             Thu Apr 15 16:11:58 2010
flash-plugin-10.0.45.2-release.i386.rpm
install_flash_player_10_linux.deb

La première ligne de la sortie de la commande watch contient les informations d'en-tête suivantes :

  • Toutes les 2.0s :Intervalle de temps. c'est-à-dire que ls sera exécuté toutes les 2 secondes.
  • ls :commande Unix exécutée toutes les 2 secondes.
  • Jeu 15 avril 16:11:58 2010 :la date et l'heure actuelles.

Le reste des lignes est la sortie de la commande que watch est en train d'exécuter. Dans cet exemple, il affiche la sortie de la commande ls.

Exemple 2 :Afficher les détails de la mémoire utilisée et libre (avec les différences mises en évidence)

L'option -d met en évidence la différence entre les mises à jour successives.

$ watch -d free -om
Every 2.0s: free -om                               Thu Apr 15 16:11:59 2010

             total	 used       free     shared    buffers     cached
Mem:           992        878        114          0        135        379
Swap:         4095          8       4087

Si la sortie de la mémoire ne change pas sur votre système, essayez l'option -d avec la commande date pour voir comment cela fonctionne.

$ watch -d date

Remarque  :Saviez-vous que vous pouvez mettre en surbrillance les modifications dans la sortie de la commande supérieure ?

Exemple 3 :Afficher l'espace disque disponible (répéter toutes les 10 secondes)

Par défaut, la commande watch utilise un intervalle de 2 secondes, vous pouvez le modifier à l'aide de l'option -n. L'exemple suivant exécute la commande df -h toutes les 10 secondes.

$ watch -n 10 df -h
Every 10.0s: df -h                                Thu Apr 15 16:12:26 2010

Filesystem            Size  Used Avail Use% Mounted on
/dev/sda7              30G  8.6G   20G  31% /
tmpfs                 497M  964K  496M   1% /dev/shm
/dev/sda6             194M   22M  163M  12% /boot

Exemple 4 :Supprimer l'en-tête de surveillance dans la sortie

Vous pouvez supprimer la 1ère ligne de la sortie de la commande watch en utilisant l'option -t comme indiqué ci-dessous.

$ watch -t ls
flash-plugin-10.0.45.2-release.i386.rpm
install_flash_player_10_linux.deb

Linux
  1. Regardez les commandes et les tâches avec la commande Linux watch

  2. 10 commandes que tout utilisateur de Linux devrait connaître

  3. Répéter une commande Unix toutes les X secondes pour toujours ?

  4. Commandes Linux de A à Z

  5. Couleurs avec unix command watch ?

100 commandes Vim utiles dont vous aurez besoin chaque jour

Utilisation de la commande Watch sous Linux

Commande mkdir sous Linux/Unix

Commande Grep sous Linux/UNIX

Commande ls sous Linux/UNIX

commande cp sous Linux/UNIX