Cron式パーサー
Cron式を解析し、人間が読める日本語の説明文と次回実行時刻を表示するオンラインツールです。バックエンド開発やサーバー管理でよく使われるCronスケジュールの設定確認や動作検証に役立ちます。よく使うパターンのプリセットも用意しています。
最終更新:
使い方
使い方を開く使い方を閉じる
- 1
Cron式を入力
5フィールドのCron式を入力欄に入力します。またはプリセットボタンから選択できます。
- 2
説明文を確認
Cron式が解析され、人間が読める説明文が表示されます。
- 3
実行時刻を確認
次回の実行予定時刻が10回分表示されます。コピーボタンで結果をクリップボードにコピーできます。
Cron式
すべての処理はJavaScriptでブラウザ内のみで実行されます。
プリセット
よく使うCronパターン
各パターンをクリックすると、上の入力欄に反映されます。
| 式 | 説明 |
|---|---|
| 15分ごと | |
| 30分ごと | |
| 6時間ごと(毎時0分) | |
| 毎日深夜2時(バックアップ向け) | |
| 毎日4:30 | |
| 平日9〜17時の毎時 | |
| 毎週日曜0時 | |
| 毎月1日3時 | |
| 四半期ごと(3か月ごとの1日0時) | |
| 元旦深夜0時 |
Cron構文クイックリファレンス
標準的な5フィールドcrontab形式のフィールド構成と特殊文字の早見表。
フィールド構成
| フィールド | 範囲 | 特殊文字 |
|---|---|---|
| 分(Minute) | 0〜59 | * , - / |
| 時(Hour) | 0〜23 | * , - / |
| 日(Day of Month) | 1〜31 | * , - / |
| 月(Month) | 1〜12 または JAN-DEC | * , - / |
| 曜日(Day of Week) | 0〜6(日曜=0)または SUN-SAT | * , - / |
特殊文字
| 文字 | 説明 | 例 |
|---|---|---|
| * | 全値(ワイルドカード) | * * * * * → 毎分 |
| , | リスト(複数値) | 0,15,30,45 * * * * → 毎時4回 |
| - | 範囲 | 9-17 * * * 1-5 → 平日9〜17時 |
| / | ステップ | */5 * * * * → 5分ごと |
| N-M/S | 範囲+ステップ | 0-30/10 * * * * → 毎時 :00 :10 :20 :30 |
| JAN-DEC | 月名エイリアス(大文字小文字不問) | 0 0 1 JAN * → 1月1日深夜0時 |
| SUN-SAT | 曜日名エイリアス(大文字小文字不問) | 0 9 * * MON-FRI → 平日9時 |
言語別Cron Parserライブラリ
主要言語・プラットフォームのcron実装と落とし穴。本ツールは下記の5フィールド標準(Linux/UNIX)を対象に解析します。
| 言語 / プラットフォーム | ライブラリ / 表記 | 備考 |
|---|---|---|
| JavaScript / Node.js | node-cron, croner | 5フィールド標準。croner はTypeScript型とタイムゾーン指定に対応。 |
| Python | croniter, APScheduler | croniter で次回・前回の実行時刻を算出。APScheduler は本格的なスケジューラ。 |
| Go | robfig/cron | デフォルトは6フィールド(秒あり)。5フィールドに切り替えるには cron.WithParser を使用。 |
| Java (Spring) | @Scheduled(cron = "...") | 6フィールド形式(秒含む、Quartz方言)。UNIX 5フィールドとは別物。 |
| Java (Quartz) | Quartz Scheduler | 6または7フィールド。L(最終)/ W(最も近い平日)/ #(第N曜日)に対応。 |
| C# / .NET | NCrontab, Cronos | Cronos はDSTを正しく扱い、タイムゾーンを明示指定する設計。 |
| Ruby | whenever, rufus-scheduler | whenever はRuby DSLからcrontabを生成。rufus-scheduler はインプロセス実行。 |
| Linux crontab | /etc/crontab, ユーザーcrontab | 5フィールドUNIX標準。@reboot / @hourly / @daily / @weekly / @monthly / @yearly のエイリアスに対応。 |
| Kubernetes CronJob | spec.schedule | 5フィールド標準。タイムゾーンは既定でUTC。spec.timeZone で明示指定可能(Kubernetes 1.27+)。 |
| GitHub Actions | on.schedule.cron | 5フィールド標準で常にUTC。最短5分間隔。負荷時は遅延することがある。 |
Cron式パーサーとは
Cron式パーサーは、UNIX系のCron式(スケジュール式)を解析し、人間が読める説明文に変換するオンラインツールです。次回の実行時刻を10回分表示し、よく使うパターンのプリセットも用意しています。Cron式は「分 時 日 月 曜日」の5つのフィールドから構成され、ステップ(*/5)や範囲(1-5)を組み合わせると表現の幅が広がりますが、慣れないうちは意図した動作になっているか確認が難しいです。このツールに貼り付けるだけで、次の10回の実行時刻が表示されるため、設定ミスをすぐに発見できます。チーム内でバッチスケジュールを共有する際にも、Cron式をそのまま渡すより説明文と実行時刻を一緒に共有する方が伝わりやすく、コミュニケーションの手間を減らせます。
主な機能
- 標準5フィールドCron式の解析・検証
- 人間が読める説明文への変換
- 次回実行時刻を10回分表示
- よく使うパターンのプリセット集
- 説明文・実行時刻のクリップボードコピー
こんな場面で役立ちます
- crontabの設定を確認・デバッグしたいとき
- CI/CDパイプラインのスケジュール設定を検証したいとき
- Kubernetesのcronjob設定を確認したいとき
- バッチ処理のスケジュールを共有するとき
- Cron式の書き方を学びたいとき
- GitHub ActionsのスケジュールトリガーのCron設定を検証したいとき
よくある質問
対応しているCron式の形式は?
標準的な5フィールド形式(分 時 日 月 曜日)に対応しています。各フィールドでは *、数値、範囲(N-M)、リスト(N,M)、ステップ(*/N)が使用できます。
秒フィールドには対応していますか?
いいえ、標準的な5フィールド形式のみ対応しています。Quartzなどの6フィールド形式(秒を含む)には対応していません。
次回実行時刻のタイムゾーンは?
ブラウザのローカルタイムゾーンで表示されます。
入力したCron式はサーバーに送信されますか?
いいえ、処理はブラウザ内のJavaScriptで行われます。入力したCron式が外部に送信されることはありません。
「*/5 * * * *」と「0,5,10,15,20,25,30,35,40,45,50,55 * * * *」は同じ動作ですか?
はい、どちらも5分ごとに実行されます。ステップ表記(*/5)はリスト表記の省略形で、人間が書くときはステップ表記の方が簡潔です。ただし実際の動作は同一であることを次回実行時刻のプレビューで確認できます。
日指定と曜日指定を同時に書いた場合はどうなりますか?
Cron式のUNIX標準では、日と曜日の両方を指定した場合、いずれかの条件が満たされた際に実行されます(OR条件)。例えば「0 9 1 * 1」は「毎月1日の9時」または「毎週月曜の9時」のどちらかに実行されます。意図しない動作を避けるため、両方を同時に指定するのは避けることを推奨します。
「*/15 * * * *」はどう読めばよいですか?
「15分ごと、毎時、毎日、毎月、すべての曜日に実行」と読みます。分フィールドの */15 は「0分から15分間隔」を意味するため、毎時 :00 / :15 / :30 / :45 に実行されます。上の入力欄に貼り付ければ、次の10回の実行予定時刻が確認できます。
「0 */6 * * *」と「0 0 */6 * *」の違いは?
「0 */6 * * *」は6時間ごとの0分に実行(00:00、06:00、12:00、18:00)。「0 0 */6 * *」は毎月の6日ごとに0時に実行(1日、7日、13日、19日、25日、翌月の1日にリセット)。ステップ(*/N)は記述したフィールドにだけ適用されるため、配置を間違えるとスケジュールが大きく変わります。
Linuxのcrontabは、Quartzのように秒を指定できますか?
できません。Linux/UNIX標準のcrontabは5フィールド形式(分・時・日・月・曜日)です。Quartz Scheduler (Java) や Spring の @Scheduled は6フィールド(秒含む)+ L(最終)・W(最も近い平日)・#(第N曜日)等の特殊文字に対応します。Go の robfig/cron はデフォルトで6フィールド。本ツールは5フィールド形式のみ対応します。
「0 0 30 2 *」が一度も実行されないのはなぜですか?
2月に30日は存在しないためです。cron はエラーを返さず、該当しない日付の組み合わせを黙ってスキップします。これが「ジョブが意味不明に動かない」典型的な原因です。本ツールの実行予定時刻プレビューが空になっていれば、その式が永遠に実行されないことが一目でわかります。
「月の最終日」にジョブを実行するには?
UNIX標準のcronには「最終日」を表す記法がありません。Quartz は L(例: 0 0 L * ?)に対応します。UNIX cron で同等の動作を行いたい場合は、28〜31日に走らせた上でシェル側で「[ "$(date -d tomorrow +%d)" = "01" ] && /your/command」のように翌日が月初かをチェックする方法が一般的です。本ツールは5フィールド標準準拠のため L/W/# は非対応です。
