cron 式ジェネレーター&解説
クリック操作で crontab のスケジュールを作成、または既存の式を貼り付け。わかりやすい解説、フィールドごとの検証、あなたのタイムゾーンでの次回 10 回分の実行日時が得られます。
ブラウザ内で動作登録不要アップロードなし
分時日月曜日
ビジュアルビルダー
次回以降の実行 10 件
cron 式ジェネレーターの使い方
*/15 * * * *のような cron 式を入力するか、プリセットをクリックします。- 表示される解説を読み、意図どおりの動作か確認します。不正なフィールドは理由とともにハイライトされます。
- ビジュアルビルダーのタブで、分・時・日・月・曜日を毎回、N ごと、指定値、範囲で設定します。
- 次回 10 回分の実行日時を確認し、サーバーのタイムゾーンが自分と異なる場合はそれを選択します。
- 式をコピーして crontab、Kubernetes CronJob、GitHub Actions の
schedule、CI の設定に貼り付けます。
1 分でわかる cron の書き方
標準的な cron 式は、スペースで区切った 5 つのフィールドで構成されます。
┌───────────── minute (0-59)
│ ┌─────────── hour (0-23)
│ │ ┌───────── day of month (1-31)
│ │ │ ┌─────── month (1-12 or JAN-DEC)
│ │ │ │ ┌───── day of week (0-7 or SUN-SAT, 0 and 7 are Sunday)
│ │ │ │ │
* * * * * command
| 記号 | 意味 | 例 |
|---|---|---|
* | すべての値 | * * * * * 毎分 |
, | リスト | 0 9,17 * * * 09:00 と 17:00 |
- | 範囲 | 0 9 * * 1-5 平日の 09:00 |
/ | ステップ | */10 * * * * 10 分ごと |
@daily | マクロ | 0 0 * * * と同じ。ほかに @hourly、@weekly、@monthly、@yearly、@reboot |
「日」と「曜日」の落とし穴
日と曜日の両方を指定した場合(どちらも * で始まらない場合)、cron はどちらか一方に一致すれば実行します。そのため 0 0 13 * 5 は「13 日の金曜日」だけでなく、毎月 13 日と毎週金曜日に実行されます。このジェネレーターは Vixie cron のこのルールに従い、気づけるよう解説に「または」と表示します。
タイムゾーンと夏時間
cron は、特に設定しない限りサーバーのローカルタイムゾーンを使います(一部の cron では CRON_TZ=、Kubernetes CronJob では timeZone で指定。GitHub Actions は常に UTC)。実行プレビューではそのタイムゾーンを選んでください。夏時間の切り替えで存在しない時刻(たとえば春の切り替え日の 02:30)に予定されたジョブは、その現地時刻が存在しないためプレビューでスキップされます。
よく使うスケジュール
*/5 * * * *:5 分ごと0 */2 * * *:2 時間ごと(毎正時)0 9 * * 1-5:平日の 09:000 0 1 * *:毎月 1 日の 0 時0 3 * * 0:毎週日曜日の 03:00(典型的なバックアップ時間帯)
よくある質問
cron ジョブを 5 分ごとに実行するには?
*/5 * * * * を使います。分フィールドのステップ /5 は、0 から始まる 5 分おき(00、05、10…)を意味します。cron で秒は指定できますか?
標準の crontab ではできません。最小単位は 1 分です。Quartz や Spring、一部のクラウドスケジューラーは秒フィールドを追加しています(6 または 7 フィールド)。このツールは標準の 5 フィールド形式を検証し、6 フィールドの式を見つけるとお知らせします。
日曜日は 0 と 7 のどちらですか?
どちらも日曜日です。曜日フィールドでは 0 も 7 も日曜日を表し、
SUN や MON-FRI のような名前でも書けます。ジョブが想定より多くの日に実行されるのはなぜですか?
日と曜日の両方を指定すると、cron はどちらかに一致したときに実行します。片方だけを条件にしたい場合は、もう一方を
* にしてください。次回実行日時はどのタイムゾーンで表示されますか?
デフォルトではブラウザのタイムゾーンです。一覧からサーバーのタイムゾーン(多くは UTC)を選ぶと、そこで実際にジョブが実行される日時を確認できます。