GNU/Linux >> Tutoriels Linux >  >> Linux

Comment exécuter une commande Linux toutes les X secondes pour toujours

Avez-vous déjà été dans une situation où vous deviez exécuter une commande Linux spécifique toutes les quelques secondes à plusieurs reprises ? Eh bien, si vous ne le savez pas déjà, ce tutoriel vous apprendra comment. Bien sûr, vous pouvez le faire en utilisant un script shell ou des tâches cron . Vous pouvez également répéter une commande Linux à un intervalle particulier sans avoir à l'exécuter manuellement à chaque fois. Voici où Watch la commande est pratique. Cette commande peut être utilisée pour exécuter la commande donnée à plusieurs reprises et surveiller la sortie. Pour le dire en termes simples, nous pouvons utiliser la commande Watch pour exécuter une commande Linux toutes les X secondes pour toujours et elle continuera à afficher la sortie dans la console jusqu'à ce que nous l'arrêtions manuellement en appuyant sur CTRL+C ou tuer le processus ou redémarrer de force le système. Par défaut, la commande donnée s'exécutera toutes les 2 secondes, ou vous pouvez définir l'intervalle de temps de votre choix.

Exécutez une commande Linux toutes les X secondes pour toujours avec la commande Watch

La syntaxe de watch la commande est :

$ watch [options] command

Ci-dessous, j'ai donné quelques exemples pour vous apprendre où vous pouvez utiliser watch commande pour exécuter une commande Linux spécifique à plusieurs reprises.

Exemple 1 :

Supposons que vous souhaitiez exécuter le uptime commande toutes les 2 secondes pour surveiller la disponibilité de votre système. Pour ce faire, lancez simplement :

$ watch uptime

Exemple de résultat :

Every 2.0s: uptime                                     sk Wed Feb  9 20:14:46 2018

 20:15:46 up  2:38,  1 users,  load average: 0.41, 0.35, 0.46

Ici,

  • Toutes les 2.0 : uptime - Le uptime La commande s'exécutera toutes les 2 secondes et affichera le résultat.
  • sk - L'utilisateur actuellement connecté
  • Mer  9 février 20:14:46 2018 - La date et l'heure actuelles auxquelles nous avons exécuté la commande.

Cela continuera à fonctionner jusqu'à ce que vous le terminiez manuellement. Pour quitter la commande, appuyez sur CTRL+C .

Vous pouvez également enregistrer la sortie du uptime commande dans un fichier. Pour ce faire, exécutez :

$ watch `uptime` > uptime.txt

Ou

$ watch `uptime` > uptime.doc

Cela peut être utile lorsque vous souhaitez envoyer la disponibilité de votre système à un support technique pour obtenir de l'aide.

Exemple 2 :

Comme je l'ai déjà mentionné, watch La commande exécute un programme toutes les 2 secondes par défaut. Nous pouvons le changer à un intervalle particulier, par exemple 5 secondes, en utilisant -n paramètre.

Affichons l'utilisation de l'espace disque du système de fichiers toutes les 5 secondes.

$ watch -n 5 df -h

Exemple de résultat :

Every 5.0s: df -h sk: Wed May 9 20:19:09 2018

Filesystem Size Used Avail Use% Mounted on
dev 3.9G 0 3.9G 0% /dev
run 3.9G 1.1M 3.9G 1% /run
/dev/sda2 457G 357G 77G 83% /
tmpfs 3.9G 32M 3.9G 1% /dev/shm
tmpfs 3.9G 0 3.9G 0% /sys/fs/cgroup
tmpfs 3.9G 36K 3.9G 1% /tmp
/dev/loop0 83M 83M 0 100% /var/lib/snapd/snap/core/4327
/dev/sda1 93M 55M 32M 64% /boot
tmpfs 789M 28K 789M 1% /run/user/1000

Pour vérifier si cette commande fonctionne vraiment, créez ou supprimez n'importe quel fichier/dossier. Vous remarquerez que l'espace libre a changé dans la sortie après la création ou la suppression des fichiers/dossiers.

Exemple 3 :

Pour voir le contenu d'un changement de répertoire, exécutez :

$ watch -d ls -l

Ici, le -d ou --differences flag mettra en évidence les différences entre les mises à jour successives.

Exemple de résultat :

total 3857440
-rw------- 1 sk users 1921843200 Apr 25 22:47 bionic-desktop-amd64.iso
-rw------- 1 sk users 1921843200 Apr 25 03:02 bionic-desktop-amd64.iso.zs-old
drwxr-xr-x 2 sk users 12288 May 8 18:45 Desktop
drwxr-xr-x 2 sk users 4096 Apr 20 16:54 Documents
drwxr-xr-x 11 sk users 4096 May 9 19:56 Downloads
drwxr-xr-x 2 sk users 4096 Jan 7 2017 Music
drwxr-xr-x 5 sk users 12288 Mar 23 17:34 Pictures
drwxr-xr-x 2 sk users 4096 May 11 2016 Public

En outre, vous pouvez afficher le contenu d'un changement de répertoire qui appartient à un utilisateur particulier (par exemple, sk ).

$ watch -d 'ls -l | fgrep sk'

Cela peut être utile dans un système multi-utilisateurs.

Exemple 4 :

Pour afficher les détails de la mémoire, exécutez :

$ watch -d free -m

Exemple 5 :

Pour afficher la sortie de du commande toutes les 10 secondes, vous pouvez utiliser :

$ watch -n 10 du -h

Exemple de résultat :

Every 10.0s: du -h                                                                                                                              sk: Wed May 9 20:26:43 2018
17M     ./.disruptive innovations sarl/bluegriffon/q87d9o6v.default/extensions
16K     ./.dooble/Dooble
4.0K    ./.dooble/Histories
176K    ./.dooble
4.0K    ./.PlayOnLinux/wine/mono
13M     ./.PlayOnLinux/wine/gecko
4.0K    ./.PlayOnLinux/wine/linux-amd64
652K    ./.PlayOnLinux/wine/linux-x86/1.3.19/share/wine/fonts
872K    ./.PlayOnLinux/wine/linux-x86/1.3.19/share/wine

Cela surveille l'utilisation du disque toutes les 10 secondes jusqu'à ce que vous le quittiez manuellement.

Pour plus de détails, je vous recommande de consulter les pages de manuel.

$ man watch

Exécuter une commande Linux toutes les X secondes pour toujours avec la boucle While

Vous pouvez également le faire à l'aide de While boucle.

Pour répéter indéfiniment une commande toutes les 2 secondes, exécutez :

$ while sleep 2 ; do uptime ; done

Exemple de sortie :

21:10:21 up 10:12,  1 user,  load average: 0.83, 0.71, 0.59
21:10:23 up 10:12,  1 user,  load average: 0.76, 0.70, 0.59
21:10:25 up 10:12,  1 user,  load average: 0.76, 0.70, 0.59
21:10:27 up 10:12,  1 user,  load average: 0.70, 0.68, 0.58
[...]

Conclusion

Vous savez maintenant exécuter une commande toutes les X secondes en utilisant Watch commande. Généralement, Watch La commande est utilisée pour surveiller l'utilisation du disque et l'utilisation de la mémoire. Veuillez ne pas confondre cette commande avec d'autres outils de surveillance. Cette commande est destinée à exécuter une commande à chaque seconde pour toujours, jusqu'à ce que vous l'arrêtiez manuellement.

Lire connexe :

  • Comment répéter une commande jusqu'à ce qu'elle réussisse sous Linux

Linux
  1. Comment exécuter ou répéter une commande Linux toutes les X secondes pour toujours

  2. Comment utiliser la commande Su sous Linux

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

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

  5. Comment enregistrer chaque commande shell sous Linux

Comment exécuter une commande pendant une durée spécifique sous Linux

Comment exécuter une commande périodiquement sous Linux à l'aide de Watch

Comment exécuter plusieurs commandes Linux en une seule commande

Comment exécuter plusieurs commandes Linux à la fois dans le terminal Linux

Utilisation de la commande Watch sous Linux

Comment puis-je regarder mes flux de webcams sous Linux ?