В какой день / время начинается еженедельный cron?

8

Я посмотрел хотя cron человек, но не нашел ничего, что помогло :(

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

мятный
источник
Это больше подходит для суперпользователя, нет?

Ответы:

16

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

@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.

Филип Рейнольдс
источник
Здесь немного придирчиво, раздел 5 на страницах руководства посвящен форматам и соглашениям о файлах, поэтому не совсем реализация. Он определяет формат файла и часто имеет примеры
Стив Бузонас
7 воскресенье? Я думал, 0 было воскресенье? (А если это началось в 1, я думаю , что 1 было воскресенье.)
felwithe
@felwithe Sunday - это 0 и 7, поэтому вы можете выбрать, какой из них лучше всего подходит для первого дня недели в вашем регионе (понедельник или воскресенье).
Ласло ван ден Хук
Я думаю, что это неправильно, поэтому помогите мне понять 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-минутной задержкой.
Габриэль Стейплс
Но ... я не знаю, когда на самом деле работает анакрон или как он это определяет. Вы?
Габриэль Стейплс
8

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

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

Тревор Типпинс
источник
0

Ответ лежит на странице руководства для самого 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).

mwfearnley
источник