Cron式ジェネレーター
Cronスケジュールを書けば、実行タイミングがすぐ分かります。
次の10回の実行
Cron構文チートシート
| フィールド | 使用できる値 |
|---|---|
| 分 | 0-59 |
| 時 | 0-23 |
| 日(月内) | 1-31 |
| 月 | 1-12またはJAN-DEC |
| 曜日 | 0-6またはSUN-SAT(7も日曜) |
| 記号 | 意味 |
|---|---|
* | すべての値 |
, | 1,15のような値のリスト |
- | 1-5のような範囲 |
/ | */15のような、15個おきを表すステップ |
ブラウザ内で動作します。入力した内容はどこにも送信されません。
- 平易な日本語で説明
- 次の10回の実行時刻
- よくある用途のプリセット
Cron式の書き方
- プリセットを選ぶか、5つのフィールドからなる式を入力します。
- 下のボックスで各フィールドを個別に調整します。
- 説明と次の実行時刻を確認し、式をコピーします。
よく使うCronスケジュール
| スケジュール | 式 | 意味 |
|---|---|---|
| 毎分 | * * * * * | 1時間に60回実行 |
| 5分ごと | */5 * * * * | :00、:05、:10などのタイミング |
| 毎晩午前2時 | 0 2 * * * | 24時間に1回 |
| 平日午前9時 | 0 9 * * 1-5 | 月曜から金曜のみ |
| 毎月1日 | 0 0 1 * * | 1日の0時 |
| 6時間ごと | 0 */6 * * * | 0時、6時、12時、18時 |
システムによるCronの違い
下の5フィールド形式がこのジェネレーターで作成する形式であり、ほとんどのジョブスケジューラーがそのまま使う形式でもあります。
| システム | フィールド数 | 備考 |
|---|---|---|
| 標準のcron / crontab | 5 | 分、時、日、月、曜日 |
| Kubernetes CronJob | 5 | 同じ形式、YAML内では文字列として指定 |
| GitHub Actions | 5 | on.schedule.cronで設定、常にUTCで実行 |
| Quartz(Java) | 6または7 | 分の前に秒フィールドを追加 |
| AWS EventBridge | 6 | 年フィールドを追加し、日か曜日のどちらかに?を使用 |
ここで作った式をQuartzやAWSのスケジュールに貼り付け、それぞれが必要とする追加フィールドを付け加えてください。分・時・日・月・曜日の位置は変わりません。
Cronスケジュールを書くコツ
- 長いリストよりステップを使いましょう。*/15 * * * *は0,15,30,45 * * * *より短くて分かりやすくなります。
- 日(月内)と曜日を両方指定しても、見た目ほど制限は厳しくなりません。標準のCronはどちらか一方が一致すれば実行され、両方が一致する必要はないためです。
- サーバーに貼り付ける前にここでスケジュールをテストしましょう。1つのフィールドの間違いで、毎日のジョブが毎分実行されるジョブに変わってしまうことがあります。
- サーバーは通常UTCでCronを実行します。上の実行予定リストはあなたのタイムゾーンで表示されるため、ジョブが予定通り動いたと判断する前に変換しておきましょう。
Cron式ジェネレーターのFAQ
Cron式の5つのフィールドはそれぞれ何を意味しますか?
左から順に、分(0-59)、時(0-23)、日(1-31)、月(1-12)、曜日(0-6、0が日曜)です。アスタリスクはすべての値を意味するので、* * * * *は毎分実行されます。
Cronジョブを5分ごとに実行するには?
*/5 * * * *を使います。/5は5個おきを意味するので、毎時0分、5分、10分というように、毎日すべての時間で実行されます。
日(月内)と曜日を両方指定するとどうなりますか?
標準のCronでは、どちらか一方が一致すればジョブが実行されます。0 0 1 * 1は毎月1日の0時と、毎週月曜日の0時の両方で実行されます。
Cronはどのタイムゾーンを使いますか?
実行するサーバーのタイムゾーンで、多くの場合UTCです。このページの実行時刻はあなたのタイムゾーンで表示されるため、サーバーの設定が異なる場合は変換してください。
この形式はKubernetes、GitHub Actions、Quartz、AWSでも使えますか?
Kubernetes CronJobとGitHub Actionsのスケジュールは同じ5フィールド形式を使います。Quartzは秒フィールドが追加され、AWS EventBridgeは年フィールドが追加されて日のいずれかのフィールドに?を使うため、それぞれ調整が必要です。
平日だけ、または週末だけジョブを実行するには?
曜日を月〜金なら1-5に、土日なら0,6に設定します。日(月内)と月は*のままにして、それ以上の制限がかからないようにします。
@dailyや@hourlyのようなショートカットは何を意味しますか?
一部のCron実装が5フィールドの代わりに受け付けるマクロです。@hourlyは0 * * * *、@dailyは0 0 * * *、@weeklyは0 0 * * 0、@monthlyは0 0 1 * *、@yearlyは0 0 1 1 *です。このページの式の入力欄にどれかを入力すると自動的に展開されます。