実際に使うスケジュールで読み解くcron式
5つのフィールドといくつかの記号、そして有名な落とし穴。バックアップ・営業時間チェック・月次ジョブの実例で読み、次の実行予定を確認します。
このガイドで使う道具
やりたいこと
他人のcrontabにある 30 9 * * 1-5 が正確にいつ動くのか知りたい、または自分で書いた式をデプロイ前に確認したい。cron式チェックに貼ると、説明文と次の5回の実行予定が表示されます。
5フィールドの読み方
分(0〜59)、時(0〜23)、日(1〜31)、月(1〜12またはJAN〜DEC)、曜日(0〜7またはSUN〜SAT、0と7はどちらも日曜)。*はすべての値、a-bは範囲、*/nはnごと、カンマは複数値の列挙です。
- 0 9 * * 1-5 — 月〜金の9:00。平日朝のバックアップ。
- */15 8-18 * * * — 8:00〜18:59に15分ごと。営業時間のヘルスチェック。
- 0 0 1 * * — 毎月1日の0:00。月次の集計。
- 0 3 * * SUN — 毎週日曜の3:00。静かな時間帯のジョブ。
落とし穴: 日と曜日の併記はANDではなくOR
日と曜日の両方を絞ると、cronはどちらか一方が一致した日に実行します。0 0 1 * 1 は毎月1日と毎週月曜の両方で動き、「1日である月曜」だけではありません。1か月に10回以上多く動くことになるため、ツールの説明文で確認してから設定してください。
制限
対象は従来の5フィールド形式で、秒や年のフィールド、@dailyのような省略記法はありません。実行予定は端末のタイムゾーンで表示します。多くのサーバーはUTCやサーバーのローカル時刻でcronを動かすため、ジョブの遅れを疑う前に時刻設定を突き合わせてください。