Запуск одного задания каждые 10 секунд, а другой - каждую минуту

У меня есть одно задание, которое должно выполняться каждые 10 секунд, а затем у меня есть другое, которое должно выполняться каждые 60 секунд. Однако кажется, что тот, который должен запускаться каждые 10 секунд, запускается только после того, который запускается каждые 60 секунд ... так что технически он запускается только один раз в минуту.

Вот порядок, в котором они 're in:

* * * * * ( sleep 10 ; /bin/bash -l -c 'ruby /root/script.rb')
0 * * * * /bin/bash -l -c 'ruby /root/another_script.rb'

Я думал, что они будут работать параллельно друг другу, если когда-нибудь понадобится. Очевидно, я должен что-то делать неправильно.

Любая помощь будет принята с благодарностью.

-1
задан 29 February 2020 в 02:59
1 ответ

Это поля cron (из man -i 5 crontab ):

field          allowed values
-----          --------------
minute         0-59
hour           0-23
day of month   1-31
month          1-12 (or names, see below)
day of week    0-7 (0 or 7 is Sun, or use names)

Как видите, второго поля нет. Чтобы запускать задание каждые 10 секунд, вы должны использовать цикл в своем скрипте. Один из вариантов - запускать скрипт из cron каждую минуту и ​​запускать скрипт через 0, 10, 20, 30, 40 и 50 секунд.

Вот шаблон, который вы можете использовать для этого скрипта:

for i in $(seq 0 5); do echo $i; sleep 10; done
2
ответ дан 30 March 2020 в 03:20

Теги

Похожие вопросы