Jak wykonywać mniej niż 1 minutowe zadania interwałowe za pomocą harmonogramu opartego na czasach CRON

Jak wykonywać mniej niż 1 minutowe zadania interwałowe za pomocą harmonogramu opartego na czasach CRON

Domyślnie harmonogram oparty na czasach Linux Cron nie wykonuje zadań o krótszych odstępach niż 1 minuta. Ta konfigura. Zacznijmy od podstaw. Następujące zadanie Cron będzie wykonywane co minutę:

* * * * * data >> /tmp /cron_test 

Powyższe zadanie będzie wykonywane co minutę i wkłada bieżący czas do pliku /tmp/cron_test. To jest łatwe! Ale co, jeśli chcemy wykonywać to samo zadanie co 30 sekund? Aby to zrobić, używamy Cron, aby zaplanować dwa dokładnie takie same zadania, ale odkładamy wykonanie drugiego zadania za pomocą spać polecenie przez 30 sekund. Na przykład:

* * * * * data >> /tmp /cron_test * * * * * sleep 30; data >> /tmp /cron_test 

To, co zdarza się powyżej, jest to, że Cron Scheduler wykonuje oba zadania w tym samym czasie, jednak drugie zadanie CRON będzie miało 30 sekund opóźnionych wykonania powłoki. Korzystając z tego samego powyższego pomysłu, możemy również zaplanować 15 -sekundowe przedziały wykonania zadań Cron:

* * * * * sen 15; Data >> /tmp /cron_test * * * * * Sleep 30; data >> /tmp /cron_test * * * * * sleep 45; data >> /tmp /cron_test * * * * * sleep 60; data >> /tmp /cron_test 

A co z 5 sekund? To samo tutaj, ale byłoby to trochę więcej pisania, więc sugeruję użycie bash do pętli, aby wygenerować naszą listę cron. Poniższe polecenie Linux utworzy listę CRON do wykonania data >> /tmp /cron_test W odstępach 5 sekund:

# dla I in $ (SEQ 5 5 60); do (crontab -l; echo " * * * * * sen $ i; data >> /tmp /cron_test") | crontab -; zrobione 


Używać crontab -l Aby zobaczyć wszystkie zaplanowane zadania CRON:

# crontab -l # m h dom monon dow polecenie * * * * * sleep 5; data >> /tmp /cron_test * * * * * sleep 10; data >> /tmp /cron_test * * * * * sleep 15; data >> /tmp /cron_test * * * * * sleep 20; data >> /tmp /cron_test * * * * * sleep 25; Data >> /tmp /cron_test * * * * * Sleep 30; Data >> /tmp /cron_test * * * * * Sleep 35; data >> /tmp /cron_test * * * * * sleep 40; data >> /tmp /cron_test * * * * * sleep 45; data >> /tmp /cron_test * * * * * sleep 50; data >> /tmp /cron_test * * * * * Sleep 55; data >> /tmp /cron_test * * * * * sleep 60; data >> /tmp /cron_test 

Następnie sprawdź swój /tmp/cron_test plik wyjściowy:

# cat /tmp /cron_test sat 20 sierpnia 06:32:06 UTC 2016 sobota 20 sierpnia 06:32:11 UTC 2016 Sobota 20 sierpnia 06:32:16 UTC 2016 Sobota 20 sierpnia 06:32:21 UTC 2016 Sobo 20 sierpnia 06 06 : 32: 26 UTC 2016 sobota 20 sierpnia 06:32:31 UTC 2016 Sobota 20 sierpnia 06:32:36 UTC 2016 Sobota 20 sierpnia 06:32:41 UTC 2016 Sobota 20 sierpnia 06:32:46 UTC 2016 Sobota 20 sierpnia 06 06 : 32: 51 UTC 2016 Sobota 20 sierpnia 06:32:56 UTC 2016 Sobota 20 sierpnia 06:33:01 UTC 2016 Sobota 20 sierpnia 06:33:06 UTC 2016 Sobota 20 sierpnia 06:33:11 UTC 2016 Sobota 20 sierpnia 06 06 : 33: 16 UTC 2016 sobota 20 sierpnia 06:33:21 UTC 2016 

Powiązane samouczki Linux:

  • Jak okresowo uruchamiać polecenia z Anacron na Linux
  • Jak stworzyć zadanie cron w Kubernetes
  • Wprowadzenie do automatyzacji, narzędzi i technik Linuksa
  • Jak ustawić datę i godzinę na Almalinux
  • Rzeczy do zainstalowania na Ubuntu 20.04
  • Jak ustawić crontab, aby wykonywać co 5 minut
  • Mint 20: Lepsze niż Ubuntu i Microsoft Windows?
  • Czas Twoje scenariusze i procedury Bash z wnętrza kodu
  • Jak ustawić/zmienić strefę czasową na Almalinux
  • Jak wycofać aktualizacje Pacman w Arch Linux