web-dev-qa-db-ja.com

特定の日付のCron式

2010年9月6日午前6時を表すcron表現が欲しい

20
NewBeee_Java

元の質問にはcronというタグが付けられていたため、この最初のセクションはそれに適用されます。 Quartz CronTriggerツールの更新された回答については、以下を参照してください。


ほとんどのcrontabでは年を指定できないため、おそらくそれをスクリプト自体(またはスクリプト/プログラムのラッパー)に入れる必要があります。

あなたはこれを次のようなもので行うことができます:

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 から得られます)。

26
paxdiablo

ワンショットジョブの場合、cronよりも 'at' コマンドの方が適しています。

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

次のように/ etc/crontabにのみ存在する可能性があります。

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