フィールドと指定できる値
| フィールド | 値 | 備考 |
|---|
| 秒 | 0–59 | Quartz・Spring・6 フィールド Cron のみ |
| 分 | 0–59 | crontab と AWS の最初のフィールド |
| 時 | 0–23 | 24 時間表記 |
| 日 | 1–31 | Quartz・Spring・AWS で L・W・LW |
| 月 | 1–12 または JAN–DEC | 略称は大文字・小文字を区別しない |
| 曜日 | 0–7 または SUN–SAT | Quartz と AWS: 1–7、1 = 日曜日 |
| 年 | 1970–2199 | Quartz では任意、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 / @annually | 0 0 1 1 * |
| @monthly | 0 0 1 * * |
| @weekly | 0 0 * * 0 |
| @daily / @midnight | 0 0 * * * |
| @hourly | 0 * * * * |
読む順番
式は小さい単位から大きい単位へ読みます。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 は同じ意味です。