Comment exécuter des travaux d'intervalle de moins de 1 minute en utilisant le planificateur de temps CRON

Comment exécuter des travaux d'intervalle de moins de 1 minute en utilisant le planificateur de temps CRON

Le planificateur basé sur le temps Linux Cron par défaut n'exécute pas de travaux avec des intervalles plus courts de 1 minute. Cette configuration vous montrera une astuce simple comment utiliser le planificateur basé sur le temps Cron pour exécuter des travaux en utilisant des secondes d'intervalle. Commençons par les bases. Le travail Cron suivant sera exécuté à chaque minute:

* * * * * Date >> / tmp / cron_test 

Le travail ci-dessus sera exécuté chaque minute et insérer un temps actuel dans un fichier / tmp / cron_test. Maintenant, c'est facile! Mais que se passe-t-il si nous voulons exécuter le même travail toutes les 30 secondes? Pour ce faire, nous utilisons Cron pour planifier deux travaux exactement les mêmes dormir commande pendant 30 secondes. Par exemple:

* * * * * date >> / tmp / cron_test * * * * * Sleep 30; date >> / tmp / cron_test 

Ce qui se passe ci-dessus, c'est que Cron Scheduler exécute les deux travaux en même temps, cependant, le deuxième travail Cron aura une exécution de shell retardée de 30 secondes. En utilisant la même idée ci-dessus, nous pouvons également planifier des intervalles d'exécution de travail CRON de 15 secondes:

* * * * * Sleep 15; Date >> / tmp / cron_test * * * * * Sleep 30; Date >> / tmp / cron_test * * * * * Sleep 45; Date >> / tmp / cron_test * * * * * Sleep 60; date >> / tmp / cron_test 

Maintenant, qu'en est-il des 5 secondes? Idem ici, mais ce serait un peu plus de frappe, donc je suggère d'utiliser Bash pour Loop pour générer notre liste Cron. La commande Linux suivante créera une liste Cron pour exécuter date >> / tmp / cron_test Dans 5 secondes, intervalles:

# pour i dans $ (seq 5 5 60); do (crontab -l; echo "* * * * * sleep $ i; date >> / tmp / cron_test") | crontab -; fait 


Utiliser crontab -l Pour voir tous vos emplois programmés Cron:

# crontab -l # m h Dom Mon Dow Commande * * * * * Sleep 5; Date >> / tmp / cron_test * * * * * Sleep 10; Date >> / tmp / cron_test * * * * * Sleep 15; Date >> / tmp / cron_test * * * * * Sleep 20; Date >> / tmp / cron_test * * * * * Sleep 25; Date >> / tmp / cron_test * * * * * Sleep 30; Date >> / tmp / cron_test * * * * * Sleep 35; Date >> / tmp / cron_test * * * * * Sleep 40; Date >> / tmp / cron_test * * * * * Sleep 45; Date >> / tmp / cron_test * * * * * Sleep 50; Date >> / tmp / cron_test * * * * * Sleep 55; Date >> / tmp / cron_test * * * * * Sleep 60; date >> / tmp / cron_test 

Ensuite, vérifiez votre / tmp / cron_test fichier de sortie:

# CAT / TMP / CRON_TEST SAT 20 août 06:32:06 UTC 2016 Sat 20 août 20 06:32:11 UTC 2016 Sat 20 août 06:32:16 UTC 2016 SAT 20 août 06:32:21 UTC 2016 Sat 20 août 06 : 32: 26 UTC 2016 Sat 20 août 06:32:31 UTC 2016 Sat 20 août 06:32:36 UTC 2016 Sat 20 août 06:32:41 UTC 2016 Sat 20 août 06:32:46 UTC 2016 Sat 20 août 06 06 : 32: 51 UTC 2016 Sat 20 août 06:32:56 UTC 2016 Sat 20 août 06:33:01 UTC 2016 Sat 20 août 06:33:06 UTC 2016 Sat 20 août 06:33:11 UTC 2016 Sat 20 août 06 : 33: 16 UTC 2016 Sat 20 août 06:33:21 UTC 2016 

Tutoriels Linux connexes:

  • Comment exécuter les commandes périodiquement avec Anacron sur Linux
  • Comment créer un travail cron à Kubernetes
  • Une introduction à l'automatisation Linux, des outils et des techniques
  • Comment fixer la date et l'heure sur Almalinux
  • Choses à installer sur Ubuntu 20.04
  • Comment régler Crontab pour exécuter toutes les 5 minutes
  • Mint 20: Mieux que Ubuntu et Microsoft Windows?
  • Temps vos scripts et procédures de bash de l'intérieur du code
  • Comment définir / modifier le fuseau horaire sur Almalinux
  • Comment faire des mises à jour Pacman dans Arch Linux