Подтвердить что ты не робот

Выражение Cron для конкретной даты

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

4b9b3361

Ответ 1

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


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

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

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

(подробности получены из здесь).

Ответ 3

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

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