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

Crontab и dayofweek

Я пытаюсь настроить задание cron, которое запускается раз в неделю в воскресенье. Я думаю, что я должен использовать позицию "dayofweek" с установленным значением 0, но я не уверен, переопределяет ли это "*" для дневной позиции.

45 2 * * 0 /scripts/backup.sh

Это верно?

Вы правы - как уже сообщалось.

Имейте в виду, что задания, запланированные на 02:45 по воскресеньям, не будут выполняться в воскресенье весной, когда часы переводятся вперед (а задания, запланированные на 01:45 по воскресеньям, будут выполняться дважды в воскресенье осенью (осенью), когда часы падают обратно). Следствие: не планируйте задания в окне 01: 00-03: 00, если вы можете запускать их, когда часы меняют зимнее и летнее (стандартное и летнее) время.

Также имейте в виду, что вы не можете запускать задания в воскресенье 1-го числа любого месяца, добавив «1» в третий (день) столбец. Если вы напишете:

45 2 1 * 0 /scripts/backup.sh

то команда будет запускаться 1 числа каждого месяца независимо от дня и по воскресеньям, независимо от дня месяца. Как это ни странно, столбец дня недели объединяется с другими явными условиями по ИЛИ, а не по И. Я узнал это на собственном горьком опыте - выставить себя дураком на публике. Увидеть POSIX спецификация для 'crontab', которая требует, чтобы день 0 = воскресенье, и не допускает день 7 в качестве синонима.

Это правильно. Это задание будет выполняться каждое воскресенье в 2:45.