特定日期的Cron表达式

时间:2010-09-08 07:19:44

标签: spring cron expression quartz-scheduler

我想要一个代表2010年9月6日上午6:00的cron表达式

3 个答案:

答案 0 :(得分:24)

原始问题被标记为cron,因此第一部分适用于此。请参阅下文,了解Quartz CronTrigger工具的更新答案。


大多数crontabs都不允许您指定年份,因此您可能必须将其放在脚本本身(或脚本/程序的包装器)中。

您可以使用以下内容执行此操作:

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

您希望在9月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).

(详情来自here)。

答案 1 :(得分:7)

对于一次性作业,'at'命令比cron更适合。

at -f filename 06:00 09/06/2010

答案 2 :(得分:1)

它可能只在/ etc / crontab中如下:

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