Cron expression for particular date

纵饮孤独 提交于 2019-11-29 16:37:24

问题


I want a cron expression that represents 6th September 2010 6:00 am


回答1:


Original question was tagged cron so this first section applies to that. See below for an updated answer for the Quartz CronTrigger tool.


Most crontabs don't let you specify the year so you'll probably have to put that in the script itself (or a wrapper around the script/program).

You can do this with something like:

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

The option you're looking for to run at 6am on September 6 every year is

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

For the Quartz CronTrigger format, you'd be looking at something like:

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

(details garnered from here).




回答2:


For one-shot jobs the 'at' command is better suited than cron.

at -f filename 06:00 09/06/2010
  • Man Page
  • Wikipedia Article



回答3:


It could be only in /etc/crontab by follows:

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


来源:https://stackoverflow.com/questions/3665441/cron-expression-for-particular-date

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!