1

У меня есть семь сценариев для запуска, которые занимают довольно много времени, поэтому для моей первой идеи я написал свой crontab следующим образом:

0 */3 0 0 0 /home/personal/my-script-1
0 */3 0 0 0 /home/personal/my-script-2
0 */3 0 0 0 /home/personal/my-script-3
0 */3 0 0 0 /home/personal/my-script-4
...

В этом случае все мои скрипты запускаются вместе. То, что я хочу, это начать со смещения. Поэтому я изменил свой crontab следующим образом и установил 5-минутное смещение между заданиями:

0 0-59/3 0 0 0 /home/personal/my-script-1
0 5-59/3 0 0 0 /home/personal/my-script-2
0 10-59/3 0 0 0 /home/personal/my-script-3
0 15-59/3 0 0 0 /home/personal/my-script-4
...

Но я не уверен в своих правках. Будут ли мои сценарии запускаться с интервалом в три часа и смещением на 5 минут?

1 ответ1

6

Боюсь, что нет.

Второе поле crontab указывает часы дня, в который будет запускаться скрипт. Первый будет запускаться каждые три часа с 0:00 до 59:00 (что недопустимо! часы идут только с 0-23), следующие каждые три часа с 5:00 до 59:00 и т. д.

Если вы хотите установить минуты, вам нужно использовать первое поле.

0 */3 0 0 0 /home/personal/my-script-1
5 */3 0 0 0 /home/personal/my-script-2
10 */3 0 0 0 /home/personal/my-script-3
15 */3 0 0 0 /home/personal/my-script-4

Будет запущен второй сценарий в 0h05, 3h05 и т.д., Третий сценарий в 0h10, 3h10 и т.д.


Еще лучше, если сценарии всегда должны выполняться в одной и той же последовательности, просто напишите другой сценарий, который вызывает их все по очереди. Таким образом, у вас не будет проблем, если один из сценариев займет шесть минут или более.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .