Назад | Перейти на главную страницу

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

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

* */4 * * * /cmd.sh

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

  • * / 4 * * * /cmd.sh

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

* */4 * * * /cmd.sh

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

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

15 * * * * whatever...

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

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

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

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

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

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

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

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

Проблема заключается в * в первом столбце

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

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