⏱️
← ガイド一覧に戻る

cron式の検証方法:ステップバイステップガイド

· タグ: cron-validation, cron-debugging, cron-syntax-check, schedule-validation, linux-crontab

cron式の検証方法

cron式はコンパクトですが、間違いやすいものです。スラッシュの位置を間違えたり、範囲外の値を指定したりすると、ジョブが間違った時刻に実行されたり、まったく実行されなかったりします。重要なタスクが静かに失敗したとき、デプロイ前に式を検証しておけば、何時間ものデバッグを節約できます。

一般的な構文エラー

範囲外の値

各フィールドは特定の範囲を受け付けます。この範囲外の値は無効です。

# Invalid: minute 60 is out of range (0-59)
60 * * * *

# Invalid: hour 24 is out of range (0-23)
0 24 * * *

フィールドの欠落

cron式には正確に5つのフィールドが必要です。4つのフィールドは無効で、6つのフィールドには拡張構文が必要です。

# Invalid: only 4 fields (missing day of week)
0 0 * *

# Invalid: 6-field syntax without proper daemon support
0 0 * * * * /command.sh

常に数えましょう。分、時、日(月内日)、月、曜日です。

不正なステップ値

# Invalid: cannot step by 0
*/0 * * * *

# Invalid: step exceeds field maximum
*/61 * * * *

ステップ値は1以上で始まり、フィールドの最大値を超えてはなりません。

cron式の検証方法

ステップ1:フィールドに分割する

スペースで分割し、正確に5つのフィールドであることを確認します。

Expression: 30 6 * * 1-5
Fields:     minute=30, hour=6, day=*, month=*, weekday=1-5

ステップ2:各フィールドを検証する

| フィールド | 許可される範囲 | 特殊文字を受け付ける | |-------|--------------|-----------------------| | 分 | 0-59 | * , - / | | 時 | 0-23 | * , - / | | 日(月内日) | 1-31 | * , - / | | 月 | 1-12 | * , - / | | 曜日 | 0-7 | * , - / |

ステップ3:競合をチェックする

構文的には有効でも、論理的に驚きのある式があります。

# Runs on the 15th OR every Sunday — an OR condition
0 0 15 * 0

標準的なcronでは、日(月内日)と曜日を一緒に指定するとOR条件になります。どちらかが一致した時点でジョブが実行されます。

ステップ4:今後の実行時刻をプレビューする

実行時刻を生成して、スケジュールを視覚的に確認します。

Expression: 0 2 * * 1
Next 5 executions:
  1. 2026-07-27 02:00:00 (Monday)
  2. 2026-08-03 02:00:00 (Monday)
  3. 2026-08-10 02:00:00 (Monday)

プレビューが意図と一致しない場合は、本番環境に移す前に式を修正してください。

実行されないジョブのデバッグ

有効な式なのに実行されない場合は、通常システム側の問題です。

  • 権限 — スクリプトに実行権限が必要です(chmod +x)。
  • パス — cronは最小限のPATHを使用します。常に絶対パスを使用してください。/usr/local/bin/mybackup.sh であって、mybackup.sh ではありません。
  • 環境 — cronはシェルプロファイルを読み込みません。crontabまたはスクリプト自体の中で変数をエクスポートしてください。
  • ログ — 出力をリダイレクトして実行を確認します。
0 6 * * * /path/to/script.sh >> /var/log/cron.log 2>&1

バリデータツールの使用

cron式バリデータには3つの機能があります。

  1. 構文検証 — フィールド値と形式に関する即時フィードバック。
  2. スケジュールプレビュー — 現在の日付からの今後の実行時刻を表示。
  3. 視覚的なカレンダー — 予定された実行を月間カレンダー上にプロット。

いかなるcron式も、次の数回の実行時刻をプレビューせずにデプロイすべきではありません。30秒のチェックで、静かなスケジューリング障害を防げます。

cron式の検証方法:ステップバイステップガイド - CoolTool