Cron выражение для конкретной даты - PullRequest
15 голосов
/ 08 сентября 2010

Мне нужно выражение cron, которое представляет 6 сентября 2010 г. 6:00

Ответы [ 3 ]

24 голосов
/ 08 сентября 2010

Исходный вопрос был помечен cron, так что этот первый раздел относится к этому. Ниже приведен обновленный ответ для инструмента Quartz CronTrigger.


Большинство crontabs не позволяют вам указывать год, поэтому вам, вероятно, придется указать это в самом скрипте (или обертке вокруг скрипта / программы).

Вы можете сделать это с чем-то вроде:

if [[ $(date +%Y) != 2010 ]] ; then
    exit
fi

Опция, которую вы хотите запустить в 6 утра 6 сентября каждый год -

0 6 6 9 * your_command_goes_here
| | | | |
| | | | +- any day of the week.
| | | +--- 9th month (September).
| | +----- 6th day of the month.
| +------- 6th hour of the day.
+--------- Top of the hour (minutes = 0).

Для формата Quartz CronTrigger вы должны выглядеть примерно так:

0 0 6 6 9 ? 2010
| | | | | |   |
| | | | | |   +- 2010 only.
| | | | | +----- any day of the week.
| | | | +------- 9th month (September).
| | | +--------- 6th day of the month.
| | +----------- 6th hour of the day.
| +------------- Top of the hour (minutes = 0).
+--------------- Top of the minute (seconds = 0).

(подробности взяты из здесь ).

7 голосов
/ 08 сентября 2010

Для одноразовых заданий команда 'at' лучше подходит для cron.

at -f filename 06:00 09/06/2010
1 голос
/ 12 февраля 2014

Это может быть только в / etc / crontab следующим образом:

0 6 6 9 * root test `/bin/date +%Y` == 2010 && <your command>
...