Ответы:
Я даю альтернативный ответ, хотя Тревор прав.
@weeklyКлючевое слово cron делает именно так, как он упоминал. Однако большинство дистрибутивов используют run-partsдля запуска своих собственных запланированных файлов crontab (ежечасно, ежедневно, еженедельно и ежемесячно), в которых не используются ключевые слова cron.
Например , в Ubuntu есть /etc/cron.weeklyотдельный файл для каждого cronjob.
Это обычно определяется в /etc/crontab
Релиз Ubuntu 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 в воскресенье.
Примечание: при поиске man-страниц для реализаций crontab, вы хотите использовать man 5 crontabвместо just man crontab. Последний даст вам только синтаксис команды crontab. Первый дает вам детали реализации crontab.
So the weekly crontab in Ubuntu is run at 6.47am on Sunday. Это неверно, потому что test -x /usr/sbin/anacron ||часть команды говорит ТОЛЬКО запускать материал справа от того, ||если «/ usr / sbin / anacron» НЕ исполняется или не существует, но это так, так что на run-partsсамом деле он никогда не будет запущен cron! Скорее, anacronдолжен справиться с этим, верно? Таблица Aanacron в "/ etc / anacrontab" показывает это для еженедельного:, 7 10 cron.weekly run-parts --report /etc/cron.weeklyчто означает, что еженедельное задание выполняется каждый 7-й день с 10-минутной задержкой.
@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 * * 000:00 (в любую дату любого месяца), если это воскресенье (день недели 0).