Cron式パーサーとは?
Cronは、Unix/Linuxのcronジョブ、CI/CDパイプライン、KubernetesのCronJob、その他無数のタスクスケジューラで使用される標準的なスケジューリング構文です。cron式は繰り返しスケジュール全体を5つのコンパクトなフィールドに詰め込みます——強力ですが一目で読み解くのが難しいことで有名です。「0 */4 * * 1-5」は平日の4時間ごとでしょうか、それとも全く別の意味でしょうか?
このパーサーはcron式をフィールドごとに分解し、分かりやすい英語の文章に変換します。デプロイ前にスケジュールが正しいことを確認したり、cron構文表を参照せずに他の人が書いたスケジュールを素早く理解したりするのに役立ちます。
この計算機を使用するタイミング
- スケジュールされたタスクやCI/CDパイプラインをデプロイする前にCronスケジュールを確認するとき
- スケジュールされたジョブが予期しない時刻に実行された(または実行されなかった)原因をデバッグするとき
- チームメイトが書いたKubernetes CronJobやGitHub Actionsスケジュールを確認するとき
- システム管理者やDevOps認定コースのためにCron構文を学ぶとき
- サーバーマイグレーション中に既存のcrontabエントリを監査するとき
- 複数の時間制約を組み合わせた複雑なスケジューリングパターンを設計するとき
手順:
- 5フィールドのcron式を入力欄に貼り付けるか入力します。
- 各フィールドがその意味とともに個別に分解されて表示されます。
- スケジュール全体の分かりやすい言葉での説明を読みます。
- 「毎時」や「平日午前9時」といったよくあるスケジュールにはプリセットボタンを試してください。
計算式
┌───────────── 分 (0-59)
│ ┌───────────── 時 (0-23)
│ │ ┌───────────── 日 (1-31)
│ │ │ ┌───────────── 月 (1-12)
│ │ │ │ ┌───────────── 曜日 (0-6, 日曜=0)
│ │ │ │ │
* * * * *
ユースケース
- スケジュールされたタスクやCI/CDパイプラインをデプロイする前にcronスケジュールを検証する
- 同僚が書いたKubernetesのCronJobやサーバーレスのスケジュール関数を理解する
- スケジュールされたジョブが予期しない時間に実行された(または実行されなかった)理由をデバッグする
- システム管理者やDevOpsのコースでcron構文を学ぶ
- サーバー移行中に既存のcrontabエントリを監査する
主な利点
- 難解なcron構文を瞬時に分かりやすい言葉に翻訳
- 5つの各フィールドを個別に分解して明確化
- 最も一般的なスケジューリングパターン用のワンクリックプリセット
- 登録不要、すべてブラウザ内で完結
プロのヒント
- 迷った場合は、まず非常に近い未来の時刻でテストして、スケジュールが期待通りに起動することを確認してください
- 可読性のため、可能な限りすべての値をカンマで列挙するのではなく範囲(1-5)を使用してください
- サーバーやスケジューラーのタイムゾーン設定を再確認してください——これは「時間が違う」というcronバグの最も一般的な原因です
- 単純な毎日/毎週のスケジュールより複雑なものについては、分かりやすい言葉での説明を書き出し、デプロイ前に意図と照らし合わせてください
避けるべきよくある間違い
- 日(月内)と曜日がANDではなくORで結合されることを忘れる
- 0始まりの曜日(0=日曜)を他システムの1始まりの慣習と混同する
- 日(月内)フィールドの*/7が「7日ごと」を意味すると思い込む——実際は毎月リセットされる1日、8日、15日、22日、29日を意味する
- ほとんどのcron実装がUTCやユーザーのタイムゾーンではなく、サーバーのローカルタイムゾーンで実行されることを忘れる
重要な用語の説明
- Cron:Unix系オペレーティングシステムで使用される時間ベースのジョブスケジューラー
- Crontab:cronジョブのリストを定義するために使用されるファイルまたはコマンド
- ステップ値:フィールドの最小値から「N単位ごと」を意味する「/N」構文
- CronJob:cronでスケジュールされたタスクを実行するためのKubernetesのネイティブリソース
関連コンセプト
- 時間差計算機: 2つの日付と時刻の間の期間を計算
- 日付カウントダウン: 特定の日付までの日数をカウント
- Unixタイムスタンプコンバーター: Unixタイムスタンプと日付を変換
- タイムゾーンオーバーラップ計算機: タイムゾーン間の勤務時間のオーバーラップを検出
- JSONフォーマッター: JSONデータをフォーマットして検証
例
「0 9 * * 1-5」という式は、分=0、時=9、毎日、毎月、月曜から金曜という意味に分解されます——つまり「月曜から金曜の午前9時00分」です。
結果の解釈方法
パーサーは5フィールドCron式を個々のコンポーネントに分解し、各コンポーネントを平易な日本語に翻訳します。5つのフィールドは:分(0–59)、時(0–23)、日(1–31)、月(1–12)、曜日(0–6、0は日曜日)です。すべての5つのフィールドが現在の時刻と一致した場合にジョブが実行されます — これはフィールド間のAND論理です。
日と曜日の相互作用に特に注意してください。これはOR論理(ANDではなく)を使用します。日15と曜日5でスケジュールされたジョブは、毎月15日と毎金曜日に実行されます — 15日にあたる金曜日のみではありません。これはスケジューリングバグの一般的な原因です。

