5つのフィールド
cron式は空白で区切った5つのフィールドでできていて、スケジューラーにタスクをいつ実行するかを伝えます。左から順に:
| 分 | 0-59 |
| 時 | 0-23 |
| 日 | 1-31 |
| 月 | 1-12 |
| 曜日 | 0-6(日曜 = 0) |
現在の時刻がすべてのフィールドに一致したときに、タスクが実行されます。
特殊文字
*すべての値。,リスト:1,15は1日と15日。-範囲: 最後のフィールドの1-5は月曜から金曜。/間隔: 分のフィールドの*/10は10分ごと。
よく使うスケジュール
*/5 * * * * | 5分ごと |
0 * * * * | 毎時0分 |
0 0 * * * | 毎日0時 |
30 8 * * 1-5 | 平日の8時30分 |
0 0 1 * * | 毎月1日の0時 |
0 3 * * 0 | 毎週日曜の3時 |
どんな式でもcron式の解説に貼り付けると、意味を言葉で読めて、次の実行日時もわかります。
よくある落とし穴
- タイムゾーン: cronはサーバーの時計を使い、多くの場合UTCです。日本時間の9時に動かすなら、UTCでは0時です。
- 日と曜日の両方: 両方を指定すると、どちらかに一致すれば実行されます。両方に一致したときではありません。
- 秒: 標準のcronには秒のフィールドがありません。QuartzやSpringなど一部のシステムは先頭に秒を加え、6つのフィールドになります。