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

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

Un administrateur système doit souvent exécuter une commande à plusieurs reprises dans une certaine période de temps. Souvent, ces tâches peuvent être facilement complétées avec des commandes Cron simples. Dans la plupart des cas, cela devrait fonctionner, mais la période la plus courte que vous pouvez exécuter la commande cron est toutes les 1 minutes. Croyez-le ou non, dans de nombreux cas, c'est trop lent.

Exécuter la commande Linux chaque seconde

Dans ce didacticiel, vous apprendrez des techniques de script simples pour surveiller ou garder un œil sur une commande particulière dans l'état en cours d'exécution en continu similaire à la commande supérieure (surveiller en continu le processus et l'utilisation de la mémoire) pendant 3 secondes par défaut par défaut.

Nous ne nous arrêterons pas pour discuter des raisons, pourquoi vous auriez besoin d'exécuter les commandes. Je crois que tout le monde a des raisons différentes à cela dans ses travaux quotidiens ou même à la maison PCS et ordinateurs portables.

1. Utiliser la commande de montre

Montre est une commande Linux qui vous permet d'exécuter périodiquement une commande ou un programme et vous montre également une sortie à l'écran. Cela signifie que vous pourrez voir la sortie du programme à temps. Par défaut, Watch remonte la commande / le programme toutes les 2 secondes. L'intervalle peut être facilement modifié pour répondre à vos besoins.

Surveiller l'utilisation de la mémoire

«Watch» est extrêmement facile à utiliser, pour le tester, vous pouvez lancer un terminal Linux immédiatement et taper la commande suivante:

# Regardez gratuitement -m 

La commande ci-dessus vérifiera votre mémoire sans système et mettra à jour les résultats de la commande libre toutes les deux secondes.

Surveiller l'utilisation de la mémoire dans Linux

Comme le montre la sortie ci-dessus, vous avez un en-tête, affichant des informations sur l'intervalle de mise à jour (de gauche à droite), la commande exécutée et l'heure actuelle. Si vous souhaitez masquer cet en-tête, vous pouvez utiliser le -t option.

La prochaine question logique est - comment modifier l'intervalle d'exécution. À cette fin, vous pouvez utiliser le -n option, qui spécifie l'intervalle avec lequel la commande sera exécutée. Cet intervalle est spécifié en secondes. Alors disons que vous voulez exécuter votre scénario.shot Fichier toutes les 10 secondes, vous pouvez le faire comme ceci:

# watch -n 10 script.shot 

Note que si vous exécutez la commande comme indiqué ci-dessus, vous devrez CD au répertoire (Learnar Learn 15 Exemples de commande CD) où le script est situé ou spécifiez autrement le chemin complet de ce script.

Les autres options utiles de la commande de montre sont:

  1. -b - crée un son bip si la sortie de la commande est non nulle.
  2. -c - Interprète les séquences de couleurs ANSI.
  3. -d - met en évidence les modifications de la sortie de commande.

Surveiller les utilisateurs connectés, la disponibilité et la moyenne de chargement

Disons que vous souhaitez surveiller les utilisateurs connectés, la disponibilité du serveur et le chargement de la sortie moyenne en phase en continu toutes les quelques secondes, puis utilisez la commande suivante comme indiqué:

# Regardez la disponibilité 
Regarder la moyenne de chargement Linux

Pour quitter la commande, appuyez sur Ctrl + c.

Ici le `` de disponibilité '' La commande s'exécutera et affichera les résultats mis à jour toutes les 2 secondes par défaut.

Surveiller les progrès de la commande de copie

Dans Linux, tout en copie des fichiers d'un endroit à l'autre en utilisant CP commande, la progression des données n'est pas montrée, pour voir la progression des données en cours de copiation, vous pouvez utiliser le montre commande avec la commande du -s pour vérifier l'utilisation du disque en temps réel.

# cp ubuntu-15.10-desktop-amd64.iso / home / tecmint / & # watch -n 0.1 du -s / home / tecmint / ubuntu-15.10-desktop-amd64.ISO 
Surveiller les progrès de la commande de copie

Si vous pensez que le processus ci-dessus est trop compliqué à réaliser, je vous suggère d'opter pour la commande Advance Copy, qui montre la progression des données lors de la copie.

2. Utiliser la commande de sommeil

Le sommeil est souvent utilisé pour déboguer les scripts de coquille, mais il a également de nombreuses autres fins utiles. Par exemple, lorsqu'il est combiné avec pour ou alors que LOOCS, vous pouvez obtenir des résultats assez impressionnants.

Si vous êtes nouveau dans les scripts bash, vous pouvez consulter notre guide sur Bash Loops ici.

Au cas où c'est la première fois que vous entendez parler du "dormir" Commande, il est utilisé pour retarder quelque chose pendant une durée spécifiée. Dans les scripts, vous pouvez l'utiliser pour dire à votre script d'exécuter la commande 1, attendez 10 secondes, puis exécutez la commande 2.

Avec les boucles ci-dessus, vous pouvez dire à Bash d'exécuter une commande, dormir pour N quantité de secondes puis exécuter la commande.

Ci-dessous, vous pouvez voir des exemples des deux boucles:

pour l'exemple de boucle

# pour i dans 1… 10; faire echo -n "Ceci est un test en boucle $ i"; date ; dormir 5; fait 

La doublure ci-dessus, exécutera la commande echo et affichera la date actuelle, totale 10 fois, avec 5 secondes de sommeil entre les exécutions.

Voici un exemple de sortie:

Ceci est un test dans la boucle 1 mer 17 février 20:49:47 Eet 2016 Ceci est un test dans la boucle 2 merde 17 février 20:49:52 Eet 2016 Ceci est un test dans la boucle 3 mer 17 février 20:49:57 Eet 2016 Ceci est un test dans la boucle 4 mer 17 février 20:50:02 EET 2016 Ceci est un test dans la boucle 5 mer 18 février 20:50:07 Eet 2016 Ceci est un test dans la boucle 6 mer 17 février 20:50:12 EET 2016 Ceci est un test dans la boucle 7 mercredi 17 20:50:17 EET 2016 Ceci est un test dans la boucle 8 mer. 27 EET 2016 Ceci est un test dans la boucle 10 mer 17 février 20:50:32 EET 2016 

Vous pouvez changer le écho et date Commandes avec vos propres commandes ou script et modifier l'intervalle de sommeil par vos besoins.

lors de l'exemple de boucle

# tandis que c'est vrai; faire écho -n "Ceci est un test de boucle while"; date; dormir 5; fait

Voici un exemple de sortie:

Ceci est un test de Loopwed 17 février 20:52:32 EET 2016 Ceci est un test de While Loopwed 17 février 20:52:37 Eet 2016 Ceci est un test de Loopwed 17 février 20:52:42 Eet 2016 Ceci est Un test de While Loopwed 17 février 20:52:47 Eet 2016 Ceci est un test de Loopwed 17 février 20:52:52 Eet 2016 Ceci est un test de Loopwed 17 février 20:52:57 Eet 2016 

La commande ci-dessus s'exécutera jusqu'à ce qu'elle soit tuée ou interrompue par l'utilisateur. Cela peut être utile si vous avez besoin d'exécuter une commande en cours d'exécution en arrière-plan et que vous ne voulez pas compter sur cron.

Important: Lorsque vous utilisez les méthodes ci-dessus, il est fortement recommandé de définir l'intervalle assez longtemps pour donner suffisamment de temps de votre commande pour terminer l'exécution, avant la prochaine exécution.

Conclusion

Les échantillons de ce tutoriel sont utiles, mais ne sont pas destinés à remplacer complètement l'utilitaire Cron. C'est à vous de trouver lequel fonctionne mieux pour vous, mais si nous devons séparer l'utilisation des deux techniques, je dirais ceci:

  1. Utilisez Cron lorsque vous devez exécuter des commandes périodiquement même après les redémarrages du système.
  2. Utilisez les méthodes expliquées dans ce didacticiel pour les programmes / scripts qui sont censés s'exécuter au sein de la session utilisateur actuelle.

Comme toujours, si vous avez des questions ou des commentaires, n'hésitez pas à les soumettre dans la section des commentaires ci-dessous.