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

В какой день / время запускается еженедельная cron?

Я посмотрел через cron man, но не нашел ничего, что помогло :(

Кто-нибудь знает?

Я даю здесь альтернативный ответ, хотя Тревор прав.

Крон @weekly ключевое слово делает именно то, что он упомянул. тем не мение, большинство дистрибутивов используют run-parts запускать собственные запланированные файлы crontab (ежечасно, ежедневно, еженедельно и ежемесячно), которые не используют ключевые слова cron.

Например., Ubuntu имеет /etc/cron.weekly который содержит отдельный файл для каждого задания cron.

Обычно это определяется в /etc/crontab

В выпуске Ubuntu karmic 9.10 в /etc/crontab

17 *    * * *   root    cd / && run-parts --report /etc/cron.hourly
25 6    * * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.daily )
47 6    * * 7   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.weekly )
52 6    1 * *   root    test -x /usr/sbin/anacron || ( cd / && run-parts --report /etc/cron.monthly )

Итак, еженедельный crontab в Ubuntu запускается в 6.47 утра в воскресенье.

Примечание: при поиске страниц руководства для реализаций crontab вы хотите использовать man 5 crontab вместо просто man crontab. Последний даст вам только синтаксис команды crontab. Первый дает вам подробности реализации crontab.

@weekly эквивалентно: 0 0 * * 0

Так что он будет работать в 00:00 в воскресенье.

Ответ находится на странице руководства для самого crontab, (man 5 crontab):

Поддерживаются эти специальные "псевдонимы" с указанием времени, которые заменяют 5 начальных полей времени и даты и начинаются с символа '@':

@reboot    :    Run once after reboot.
@yearly    :    Run once a year, ie.  "0 0 1 1 *".
@annually  :    Run once a year, ie.  "0 0 1 1 *".
@monthly   :    Run once a month, ie. "0 0 1 * *".
@weekly    :    Run once a week, ie.  "0 0 * * 0".
@daily     :    Run once a day, ie.   "0 0 * * *".
@hourly    :    Run once an hour, ie. "0 * * * *".

Так что это 0 0 * * 0, то есть 00:00 (в любой день любого месяца), если это воскресенье (рабочий день 0).