Вход в Crontab с часовым диапазоном, превышающим полночь

18

Это действительная спецификация времени crontab, делающая то, что ожидается:

0 22-4 * * *

Или нужно сделать что-то вроде

0 22,23,0,1,2,3,4 * * *
Хайд
источник

Ответы:

5

Я никогда не пытался использовать такой диапазон, и я не уверен, будет ли он работать. Поэтому мой первый совет - проверить это и посмотреть, что произойдет - хотя, вероятно, со сценарием, который делает только запись в журнале или что-то еще безобидное.

Во-вторых, для ATT и BSD cron вы не можете иметь диапазоны и списки сосуществующих, так что вам придется либо перечислять каждый час отдельно, либо иметь две строки, одну с диапазоном и одну со списком.

Дженни Д
источник
Измененный вопрос, чтобы быть действительным на ATT / BSD вашим ответом. На самом деле я пишу «мою» спецификацию crontab в конфигурации работы Дженкинса (и буду тестировать ее сегодня вечером с фиктивной работой), но здесь я спрашиваю, чтобы узнать, каково ожидаемое поведение в системе Unix / Linux.
Гайд
На самом деле я ожидал бы, что это не сработает, и был бы приятно удивлен, если бы это сработало. Но я также ожидаю, что cron будет жаловаться, если вы введете неверный диапазон.
Дженни Д
12

У меня были проблемы с запуском cronjobs за полночь. Я закончил тем, что вставил две почти идентичные записи для сценариев.

* 22-00 * * * /myscript
* 00-05 * * * /myscript

это, казалось, добилось цели.
Я испытывал сбои в cron из-за использования 22-05, и в процессе устранения придумал это решение.

user73420
источник
Просто примечание, кажется, не работает */5, то есть:*/5 00-05 * * * /myscript
dentex
8

Существует широкий спектр демонов cron, если только вы не скажете, какой именно из них вы используете (обработка списков в таких угловых случаях вполне может измениться от версии к следующей), ответа не может быть. Лучше всего идти с вашим явным списком. Я не был бы слишком удивлен, если бы какая-то реализация восприняла ваше завершение как странный способ сказать 4-22...

В вашей местной документации даже упоминается такой случай? Может быть, законно иметь два списка, например 22-24,1-4?

vonbrand
источник
8
Я могу подтвердить, что 22-23,0-4(обратите внимание, что crontab не 24работает) работает отлично, по крайней мере, на Centos, на котором я его тестировал.
qwertyboy