it-swarm-ru.tech

Какой правильный синтаксис для запуска cron каждые 4 часа?

У меня есть следующий синтаксис (который я считаю правильным?), Но он запускает команду каждую минуту!

* */4 * * * /cmd.sh
63
erotsppa
0 0,4,8,12,16,20 * * * /cmd.sh

Наверное, так я и сделаю. Это будет запускать работу каждые 4 часа, в часы 00:00, 04:00, 08:00, 12:00, 16:00, 20:00.

Это просто более подробный способ написания */4, но он должен работать так же.

64
phuzion

Исходное сообщение до редактирования показывало конфигурацию как:

  • */4 * * * /cmd.sh

Постер не был знаком с Markdown и поставил звездочку в первом столбце, в результате чего он появился в виде маркера. Я отредактировал их пост, чтобы отразить то, что они намеревались опубликовать:

* */4 * * * /cmd.sh

В этой конфигурации постер получит поведение, которое они наблюдали: задание будет выполняться раз в минуту в течение часов, которые делятся на 4.

Чтобы избежать запуска один раз в минуту, в первом столбце необходимо число, например:

15 * * * * whatever...

Это будет работать на 15-й минуте после каждого часа.

Собираем все вместе: для запуска раз в час в часы, которые делятся на 4, используйте следующий синтаксис:

15 */4 * * * whatever...
76
Evan Anderson

Выполните crontab -e, а затем добавьте следующую запись

0 */4 * * * path_to_the_script

Это будет сценарий каждые 4 часа.

28
Vivek Varghese Cherian

Проблема * в первом столбце

'* */2 * * */path-to-script'

это означает запуск каждую минуту часа, но только каждые 2 часа

9
charlie