Cron式ジェネレーター
0-59
0-23
1-31
1-12
0-7(0,7=日)
cronの構文は簡潔ですが間違えやすく、たとえば0 */6 * * *は6時間ごとに実行されますが、*/6 0 * * *は午前0時台の最初の1時間だけ、10回実行されます。このジェネレーターでは、スケジュール(15分ごと、平日の午前9時、毎月1日など)を視覚的に選ぶだけで正確な式が得られ、その意味を平易な言葉で説明した説明文も表示されます。
cron式の作り方
-
1
プリセットを選ぶか、フィールドに直接入力する
毎分、毎時、毎日0時、毎週日曜日、毎月1日はワンクリックで選択できます。それ以外のスケジュールは、5つのフィールドに直接値を入力してください。
-
2
スケジュールを絞り込む
特定の分・時・日(日付)・月・曜日を指定できます。範囲(9-17)、リスト(1,15)、ステップ(*/6)にすべて対応しています。
-
3
式を読み取る
ジェネレーターは常に標準の5フィールドcron形式を出力し、スケジュールの内容を平易な言葉で説明します。
-
4
方言を確認する
方言によって仕様が異なります(Quartz、AWS EventBridge、Kubernetes)。お使いのスケジューラーが期待する形式と式が一致することを確認してください。
5つのフィールド
* * * * *
│ │ │ │ │
│ │ │ │ └── 曜日 (0-6、日曜日=0、または SUN-SAT)
│ │ │ └───── 月 (1-12、または JAN-DEC)
│ │ └──────── 日(日付) (1-31)
│ └─────────── 時 (0-23)
└────────────── 分 (0-59)
各フィールドには次の値を指定できます:
- 特定の数値:
5 - リスト:
1,15,30 - 範囲:
9-17 - ステップ:
*/10(10ごと)または0-30/5(0から30まで5ごと) - ワイルドカード:
*(すべての値)
よく使う式
| スケジュール | cron式 |
|---|---|
| 毎分 | * * * * * |
| 15分ごと | */15 * * * * |
| 毎時0分 | 0 * * * * |
| 6時間ごと | 0 */6 * * * |
| 毎日午前2時30分 | 30 2 * * * |
| 平日の午前9時 | 0 9 * * 1-5 |
| 毎週月曜日の午前8時 | 0 8 * * 1 |
| 毎月1日の午前3時 | 0 3 1 * * |
| 平日の9時から17時まで15分ごと | */15 9-17 * * 1-5 |
| 毎月1日と15日の正午 | 0 12 1,15 * * |
| 毎週日曜日の午前0時 | 0 0 * * 0 |
「日付」と「曜日」の落とし穴
標準のcronでは、「日付(日)」と「曜日」の両方を指定した場合(どちらも*でない場合)、いずれか一方が一致した時点でジョブが実行されます(ANDではなくOR)。0 0 1 * MONは、毎月1日および毎週月曜日に実行され、1日が月曜日のときだけ実行されるわけではありません。
Vixie CronおよびほとんどのLinuxディストリビューションはこの「OR」ルールを採用しています。Quartz(Java)や他の一部の環境では「AND」が使用されています。不確かな場合は、スケジューラーで試し実行(dry run)かテストジョブを使って式を確認してください。
方言の違い
- 標準的なcron(Linux):5つのフィールドあり、曜日(0~6)で指定可能(日曜日は0または7)。
- Quartz(Spring、Javaアプリ):6~7つのフィールドで構成され、第1フィールドは秒、オプションの第2フィールドは年。曜日は1~7(日曜日=1)です。
- AWS EventBridge cron:6フィールドで年を含みます。曜日と日付は相互排他的でなければならず、いずれか一方を
?にする必要があります。 - GitHub Actions:標準の5フィールド形式で、最小間隔は5分、UTCのみ対応です。
- Kubernetes CronJob:標準の5フィールド形式で、デフォルトはUTCです。
お使いのスケジューラーがどの方言を採用しているか必ず確認してください。
タイムゾーン
従来のcronはサーバーのローカルタイムゾーンで動作します。これは夏時間(DST)の切り替え時に大きな問題を引き起こします。たとえば午前2時30分のジョブは、切り替え日に2回実行されたり、まったく実行されなかったりすることがあります。最近のスケジューラー(systemdタイマー、Kubernetes、EventBridge)ではタイムゾーンを明示的に指定できます。特別な理由がない限りUTCを使うことをおすすめします。
よくある質問
そのフィールドで5単位ごと、0から始まることを意味します。分フィールドでは、*/5は0分、5分、10分、15分、…、55分に実行されます。0,5,10,15,20,25,30,35,40,45,50,55の短縮表記です。
cronは、60分や24時間で割り切れない任意の間隔を表現できません。90分の場合は、具体的な実行時刻を列挙します。0 0,9 * * *に追加の行を組み合わせるか、任意の間隔に対応したスケジューラー(systemdタイマー、anacron)に移行してください。
午前0時です。フィールドの順序は「分・時」なので、0 0は「0時の0分」を意味します。正午なら0 12 * * *です。
標準のcronはそのジョブをスキップします。実行漏れは再試行されません。Anacronは次回起動時に、漏れた日次・週次・月次ジョブを実行します。Kubernetes CronJobには、漏れた実行枠を明示的に扱うためのstartingDeadlineSecondsとconcurrencyPolicyが用意されています。
関連ツール
ASCII表リファレンス
0から127までの完全なASCII表です。NUL、LF、DELなどの制御コードを含め、各文字の10進数、16進数、8進数、2進数、HTML数値文字参照を表示します。
JavaScript圧縮ツール
変数名のリネーム、空白の削除、デッドコードの除去、定数畳み込みでJavaScriptを圧縮し、より小さなバンドルを作成します。
HTML文字参照
HTMLエンティティの検索可能なリスト、その名称コードおよび数値コード、および特殊文字や記号のワンクリックコピー機能を提供します。
FPS カウンター
requestAnimationFrame でブラウザーの FPS を測定。平滑化、最小・最大フレームレート、警告しきい値、任意のグラフに対応。ローカルで動作し、アップロードも API も不要です。
プレースホルダー画像ジェネレーター
1〜4000 pxの画像に色と文字を設定し、PNGで保存できます。外部URLとHTMLもコピーできます。
HTML 圧縮ツール
通常のコメントを削除し、空白を整理して、ブラウザ内で HTML をコンパクトにします。使用前に結果を確認してください。
このツールは他の言語でも利用できます
- Generator wyrażeń Cron [PL]
- Générateur d'expressions Cron [FR]
- Cron-uttrycksgenerator [SV]
- Cron-Ausdrucks-Generator [DE]
- Penghasil Ekspresi Cron [ID]
- Bộ tạo biểu thức Cron [VI]
- مولّد تعبيرات Cron [AR]
- Generador de Expresiones Cron [ES]
- Cron 표현식 생성기 [KO]
- เครื่องสร้างนิพจน์ Cron [TH]
- Cron-expressiegenerator [NL]
- Gerador de Expressões Cron [PT]
- Cron Expression Generator [EN]
- Generatore di Espressioni Cron [IT]
- Генератор cron-выражений [RU]
- Cron İfadesi Oluşturucu [TR]
- Cron 表达式生成器 [ZH]