本文へスキップ
CronExplain

Cron 構文早見表

主要な方言の Cron 構文を 1 ページにまとめたリファレンスです。どんなフィールドがあり、どんな値を受け付け、各特殊文字が何をするのかが分かります。例はすべて解説ツールで試せます。

フィールドと指定できる値

フィールド値備考
秒0–59Quartz・Spring・6 フィールド Cron のみ
分0–59crontab と AWS の最初のフィールド
時0–2324 時間表記
日1–31Quartz・Spring・AWS で L・W・LW
月1–12 または JAN–DEC略称は大文字・小文字を区別しない
曜日0–7 または SUN–SATQuartz と AWS: 1–7、1 = 日曜日
年1970–2199Quartz では任意、AWS では必須

特殊文字

記号意味例
*任意の値* * * * * — 毎分
,値のリスト0 9,17 * * * — 09:00 と 17:00
-範囲0 9 * * 1-5 — 平日の 09:00
/ステップ*/15 * * * * — 15 分ごと
?特定の値なし(日付フィールド)0 0 12 ? * MON — Quartz
L最終日 / 最後の曜日0 0 0 L * ? — 毎月の最終日
W最も近い平日0 0 9 15W * ? — 15 日に最も近い平日
#月の第 n 曜日0 0 9 ? * 2#1 — 第 1 月曜日

マクロ

マクロ標準 crontab
@yearly / @annually0 0 1 1 *
@monthly0 0 1 * *
@weekly0 0 * * 0
@daily / @midnight0 0 * * *
@hourly0 * * * *

読む順番

式は小さい単位から大きい単位へ読みます。30 2 * * 1 は、任意の日、任意の月で、曜日が月曜日のときの 2 時 30 分、つまり毎週月曜日の 02:30 です。Quartz と Spring では先頭に秒、AWS では末尾に年を追加します。

よくある落とし穴

分フィールドの */7 は「永遠に 7 分ごと」ではありません。毎時リセットされるため、0、7、…56 分に実行され、次はまた 0 分です。crontab で日付フィールドを両方指定すると、どちらか一方の一致で実行されます。また Quartz と AWS では週が 1 から始まるため、曜日の 0 は無効です。

よくある質問

Cron のフィールドの順番は?
分・時・日・月・曜日です。Quartz と Spring は先頭に秒を置き、AWS は末尾に年を追加します。
Cron の疑問符はどういう意味ですか?
「特定の値なし」です。Quartz と AWS では 2 つの日付フィールドの一方に必須で、標準 crontab では使えません。
「90 分ごと」はどう書きますか?
時間や日を割り切れない間隔は 1 行の Cron では表現できません。0 0-21/3 * * * と 30 1-22/3 * * * のように 2 行に分けます。
月や曜日の略称は大文字・小文字を区別しますか?
区別しません。このサイトで扱うすべての方言で、JAN・Jan・jan は同じ意味です。