Я посмотрел через 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).