Я хочу выражение cron, которое представляет 6 сентября 2010 г. 6:00
Выражение Cron для конкретной даты
Ответ 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).
(подробности получены из здесь).
Ответ 2
Для одноразовых заданий команда 'at' лучше подходит, чем cron.
at -f filename 06:00 09/06/2010
Ответ 3
Он может быть только в /etc/crontab следующим образом:
0 6 6 9 * root test `/bin/date +%Y` == 2010 && <your command>