あやふやなcrontabをデプロイしない
cron式を読み違えると、バックアップが月1回のはずが毎日深夜に実行——最悪の場合、一度も実行されません。式を貼り付ければ、ツールが平易な言葉に翻訳し、各フィールドを分解し、実際の次回5回の実行日時を計算して意図どおりかを検証できます。
cron構文の早見表
| フィールド | 範囲 | 例 |
|---|---|---|
| 分 | 0–59 | 0、*/15、30 |
| 時 | 0–23 | 9、9-17、*/6 |
| 日 | 1–31 | 1、1,15、10-20 |
| 月 | 1–12またはJAN–DEC | 6、JAN、3-5 |
| 曜日 | 0–7またはSUN–SAT | 1-5、0、MON |
よく使うレシピ
- */15 * * * * — 15分ごと(監視、キュー処理)。
- 30 9 * * 1-5 — 平日9時30分(日次レポート)。
- 0 0 1 * * — 毎月1日の深夜0時(請求処理)。
- 0 */6 * * * — 6時間ごと(同期)。
- 0 3 * * 0 — 日曜の3時(週次メンテナンス)。
罠その1:日と曜日を同時に指定するとORで結合されます。そしてサーバーは多くの場合UTCで動いています——ローカルのタイムゾーンではありません。
よくある質問
cron式の5つのフィールドの意味は?
順に:分(0-59)、時(0-23)、日(1-31)、月(1-12またはJAN-DEC)、曜日(0-7またはSUN-SAT、0と7は日曜)。各フィールドは*、値、範囲(1-5)、ステップ(*/15)、リスト(1,15)を受け付けます。
5分ごとにタスクを実行するには?
*/5 * * * * — 分フィールドの*/5は「5分ごと」を意味し、毎時・毎日実行されます。
日と曜日を両方指定するとどうなる?
cronの古典的な罠:2つの条件はANDではなくORで結合されます。「0 0 13 * 5」は毎月13日に実行され、さらに毎週金曜日にも実行されます——13日の金曜日だけではありません。このツールはこのセマンティクスを適用・表示します。
次回実行は私のタイムゾーンを考慮しますか?
はい、ブラウザのタイムゾーンで計算されます。注意:サーバー上のcronはサーバーのゾーン(多くはUTC)を使います——設定を確認してください。
@dailyや@hourlyのショートカットは?
非標準のエイリアスです:@hourly =「0 * * * *」、@daily =「0 0 * * *」、@weekly =「0 0 * * 0」、@monthly =「0 0 1 * *」、@yearly =「0 0 1 1 *」。ここで分析するには同等の5フィールド形式を入力してください。