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

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

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

* */4 * * * /cmd.sh

решение1

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

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

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

решение2

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

  • */4 * * * /cmd.sh

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

* */4 * * * /cmd.sh

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

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

15 * * * * whatever...

Он будет запускаться на 15-й минуте каждого часа.

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

15 */4 * * * whatever...

решение3

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

0 */4 * * * путь_к_скрипту

Скрипт будет запускаться каждые 4 часа.

решение4

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

' * */2 * * * /путь-к-скрипту '

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

Связанный контент