実際に使うスケジュールで読み解く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を動かすため、ジョブの遅れを疑う前に時刻設定を突き合わせてください。