Cron 式ツール
Cron 式を解析・生成・解説し、選択したタイムゾーンで次回以降の実行時刻をプレビューします。よく使うテンプレート、ビジュアルジェネレータ、ローカル履歴、TXT / CSV / JSON 形式の書き出しに対応します。バックエンドの定時ジョブ、CI/CD のスケジュール、バックアップ、レポート生成、キャッシュ更新、リマインダー配信、運用巡回の確認に役立ちます。
- 5 フィールド標準 Cron と秒つき 6 フィールド Cron を自動判別し、自然言語で説明
- 選択したタイムゾーンで次回 5・10・20・50 回の実行時刻をローカルと UTC で表示
- 毎分・毎時・毎日・毎週・毎月・毎年のテンプレートとビジュアルジェネレータを内蔵
- Linux crontab、GitHub Actions、Cloudflare Workers、Kubernetes、Quartz の差異を注記
まだ履歴はありません。
次において実施09:00、月曜日 から 金曜日 まで
| フィールド | 現在の値 | 取りうる範囲 |
|---|---|---|
| 分 | 0 | 0〜59 |
| 時 | 9 | 0〜23 |
| 日 | * | 1〜31 |
| 月 | * | 1〜12 |
| 曜日 | 1-5 | 0〜6(0 と 7 はいずれも日曜) |
構文の解説
Cron の各フィールドは同じ記号セットを共有しているため、これらを押さえておくだけで手書きミスのほとんどを防げます。
- * ワイルドカード
- そのフィールドのすべての値にマッチします。例えば * * * * * は毎分発火します。
- , 値の列挙
- 同じフィールド内に複数の具体値を並べます。例えば 0 9,12,18 * * * は毎日 9 時、12 時、18 時に発火します。
- - 連続範囲
- 両端を含む連続範囲にマッチします。例えば 0 9 * * 1-5 は平日の 9 時に発火します。
- / ステップ間隔
- 開始値や範囲の起点から一定の間隔で発火します。例えば */15 * * * * は 15 分ごとに発火します。
- ? Quartz プレースホルダ
- 日付または曜日フィールドのプレースホルダで、その位置を指定しない意味になります。Quartz 系のスケジューラ専用で、0 0 12 ? * MON は毎週月曜の正午に発火します。
- L Quartz 末尾値
- そのフィールドの最後の値を表し、月末や最後の金曜などを指します。Quartz 系のスケジューラ専用で、0 0 12 L * ? は毎月末の正午に発火します。
- 0/7 曜日値の慣習
- 曜日フィールドでは 0 と 7 のどちらも日曜を意味し、多くの実装で SUN から SAT の別名も使えます。例えば 0 0 * * 0 と 0 0 * * 7 は同等で、いずれも毎週日曜の 0 時に発火します。
プラットフォーム差異
Cron の構文、デフォルトのタイムゾーン、フィールド数はランタイムごとに異なります。デプロイ前に対象プラットフォームのドキュメントを確認してください。
- Linux crontab
- 5 フィールド標準 Cron をシステムのタイムゾーンで実行します。ログインシェルとの差を避けるため、crontab 内で SHELL / PATH / MAILTO を明示的に宣言してください。
- GitHub Actions
- 5 フィールド標準 Cron のみを受け付け、UTC で実行されます。負荷が高いときや非アクティブなリポジトリではスケジュールが遅延・停止することがあるため、重要な定時処理には別のトリガーを併用してください。
- Cloudflare Workers Cron Triggers
- 5 フィールド標準 Cron を UTC で実行します。各式は Workers の設定で個別に有効化が必要で、最小粒度は 1 分です。
- Kubernetes CronJob
- 5 フィールド標準 Cron を使用し、spec.timeZone で IANA タイムゾーンを指定できます。startingDeadlineSeconds、concurrencyPolicy、履歴保持の設定が実際の実行に影響します。
- Quartz Scheduler
- 6 または 7 フィールド構文を使い、? L W # などの拡張をサポートします。日付と曜日フィールドの両方をワイルドカードにできないため、片方は ? にする必要があります。本ツールは汎用 Cron として解析するため、Quartz 専用構文は公式の検証ツールも併用してください。
概要
一つの Cron 式を、自然言語・フィールド分解・次回実行時刻として並べて表示し、スケジューリングとデバッグ、リリース前の確認をしやすくします。
- 01
5 / 6 フィールド Cron の解析と検証
5 フィールド標準 Cron と秒つき 6 フィールド Cron を自動判別し、誤った式は即座に読みやすい注意を表示します。
- 02
現在の言語での自然言語説明
cronstrue によりページの言語で説明を出力し、レビュー、ドキュメント、チケットでそのまま使えます。
- 03
フィールド単位の分解
秒・分・時・日・月・曜日のそれぞれについて、取りうる範囲と現在の規則を解説します。
- 04
タイムゾーン対応の次回実行
ブラウザのローカル、UTC、任意の IANA タイムゾーンで次回 5・10・20・50 回の実行時刻を計算します。
- 05
テンプレートとビジュアルジェネレータ
毎分・毎時・平日・毎週・毎月・毎年のテンプレートを内蔵し、時間軸ごとに式を組み立てるジェネレータも備えます。
- 06
ローカル履歴と多形式の書き出し
最近使った式はブラウザに保存し、次回実行時刻は TXT / CSV / JSON で書き出せます。
使い方
まずフィールドの意味を確認し、続いて対象プラットフォームのタイムゾーンで次回実行時刻をプレビュー検証してからリリースします。
- 01
入力欄に式を書きます。例: 0 9 * * 1-5。慣れていない場合はまずテンプレートから始めるとよいでしょう。
- 02
自然言語の説明とフィールド分解で、想定どおりのリズムかを確認します。
- 03
対象タイムゾーンと表示件数を選び、次回実行時刻が期待するウィンドウに収まるかを検証します。
- 04
もっと複雑な規則が必要なら、ビジュアルジェネレータを開いて分・時・毎日・毎週・毎月・毎年の軸で組み立てます。
- 05
問題なければ式をコピーするか実行時刻を書き出し、ローカル履歴に保存しておけばいつでも復元できます。
詳細
本ツールは汎用な Cron サンドボックスではなく、実際のスケジューリング業務を起点に設計しています。
- 5 フィールドと 6 フィールドを自動判別し、フィールド数が異常な場合は黙って誤解釈せず注意を表示します。
- ? L W # のような Quartz 風の記号を検出した場合に注意を出し、GitHub Actions や Kubernetes など Quartz 以外で再利用してしまうのを防ぎます。
- 日付と曜日を両方指定した場合に注意を表示し、多くのプラットフォームが OR、一部が AND であることを思い出させます。
- 次回実行時刻はローカル時刻、UTC、現在からの相対時間を表示し、夏時間や日跨ぎの挙動を確認しやすくします。
- タイムゾーンを切り替えると実行一覧が再計算され、GitHub Actions や Cloudflare Workers の UTC 時差を確認するのに便利です。
- ビジュアルジェネレータは分・時・毎日・毎週・毎月・毎年の 6 軸をカバーし、必要に応じて曜日や月を選択できます。
- 解析、計算、コピー、書き出しはすべてブラウザ内で完結し、式が外部に送信されることはありません。
活用シーン
Cron は定期処理の共通語です。周期的に動かしたい作業はほぼ Cron で書かれます。
-
バックエンドの定時ジョブ
請求、サブスク更新、レポート生成、クリーンアップ、キャッシュ温めの実行リズムを決めます。
-
CI/CD とビルド巡回
GitHub Actions、GitLab CI、Jenkins で UTC ベースの夜間ビルドや回帰テスト、依存スキャンを設定します。
-
データ同期とアーカイブ
DB 同期、ログのアーカイブ、ETL、バックアップ戦略、データウェアハウスのリフレッシュ枠を定義します。
-
運用巡回とアラート
ヘルスチェック、ディスク警告、証明書期限のスキャン、当番リマインダーをスケジューリングします。
-
メッセージ配信とグロース
朝報、朝会サマリー、キャンペーン開始、セール終了、復帰メールの配信時刻を組みます。
-
クラウドネイティブとコンテナ
Kubernetes CronJob、Cloudflare Workers、Vercel Cron、Lambda Schedule の式とタイムゾーンを検証します。
-
IoT とエッジ
デバイス収集、ゲートウェイ送信、キャッシュ消去、リモートアップデート枠を計画します。
-
チームのドキュメントとレビュー
ドキュメント、PR 説明、チケットで読みやすい Cron 説明を添え、メンバーが毎回リズムを推測する手間を減らします。
使い方のヒント
信頼できる定時ジョブは、明示的なタイムゾーン、読みやすいリズムの説明、実際の実行検証から生まれます。
- リリース前にプレビューでリズムを確認してください。自然言語の説明だけを根拠にしないようにします。
- 分散チームでは、Cron 式・対象タイムゾーン・具体的な実行時刻の例を一緒にドキュメント化します。
- GitHub Actions や Cloudflare Workers のような UTC ベースのプラットフォームでは、ローカルの目標時刻を UTC に変換してから式を書きます。
- 日付と曜日を同時に指定する場合は、対象プラットフォームが OR か AND かを必ず確認します。
- 高頻度(毎分など)の処理は冪等性を担保し、上流負荷時にタスクが詰まらないようにします。
- 複雑な式はソース管理や設定センターに保存し、意図を短いコメントで添えておきます。
制限事項
Cron は表現言語であり、実装ごとに細部が異なります。本ツールは式を解説するだけで、実際にスケジュールを登録するわけではありません。
- 本ツールは解析とプレビューのみを行い、いずれのプラットフォームでもジョブを登録・実行しません。
- GitHub Actions、Cloudflare Workers などの多くのプラットフォームは 5 フィールド Cron を UTC で実行し、6 フィールド(秒つき)には対応していません。
- 汎用 Cron パーサーは Quartz の ? L W # などの拡張に対応しません。対象が Quartz なら公式のツールでも検証してください。
- 夏時間の切替時は欠落・重複する時間帯があり、ジョブの実行回数が直感と変わる可能性があります。切替日をまたぐ実行時刻をプレビューで確認してください。
- 日付と曜日を両方指定したときの意味合いはプラットフォームごとに違うため、対象ドキュメントを正とします。
- 次回実行時刻はブラウザ内で選択した IANA タイムゾーンに基づく計算であり、本番の発火を保証しません。対象プラットフォームでも回帰検証を行ってください。
よくある質問
フィールド数、タイムゾーン、プラットフォーム互換性、Quartz、履歴に関するよくある質問。
5 フィールドと 6 フィールドの違いは?
従来の Unix crontab は 5 フィールド(分・時・日・月・曜日)です。Quartz、Spring、cron-parser などは先頭に秒フィールドを足した 6 フィールドにも対応します。本ツールはフィールド数から自動的に判別します。
解析に失敗するのはなぜですか?
フィールド数が違う、値が範囲外、対象ランタイムでサポートされない記号(Quartz の ? L W # など)を使っているケースが多いです。フィールド範囲と構文の解説を見ながらフィールド単位で確認すると見つかります。
0 0 * * 0 と 0 0 * * 7 は同じ意味ですか?
同じです。曜日フィールドでは 0 と 7 のいずれも日曜を意味し、ほとんどの実装で SUN〜SAT の別名も使えます。
日付と曜日を両方指定するとどうなりますか?
Unix 系の多くは OR(どちらかが一致すれば発火)、少数は AND(両方が一致したときだけ発火)です。対象プラットフォームのドキュメントを必ず確認し、必要なら式を 2 つに分けます。
GitHub Actions の実行が遅れるのはなぜですか?
GitHub Actions は UTC で動作し、ピーク時に遅延やスキップが発生することがあります。長く活動のないリポジトリでは停止することもあります。重要な定時処理は別トリガーやリトライで補強してください。
本ツールはジョブを登録しますか?
いいえ。ブラウザ内で解析・説明・実行時刻のプレビューを行うだけで、いかなるプラットフォーム API も呼ばず、式をアップロードもしません。
履歴はアップロードされますか?
いいえ。履歴はブラウザの localStorage に保存され、現在のブラウザ・オリジンでのみ表示されます。1 件ずつ削除も、全消去もできます。
夏時間で実行回数が変わるのはなぜですか?
夏時間の切替で一定の時間帯がスキップまたは重複します。その時間帯を狙う Cron は、1 回多く実行されたり 1 回スキップされたりします。切替日をまたぐ実行をプレビューで確認してください。
関連ツール
タイムスタンプ変換、タイムゾーン変換、世界時計、日付計算ツールを組み合わせれば、ログ、スケジューリング、課金サイクル、タイムゾーン対応の業務に対応できます。