cron式ジェネレーター
スケジュールを指定すると、それを実行するcron式と、選んだタイムゾーンでの次回以降の実行日時が得られます。
式
0 3 * * *
03:00に実行。
- 次回の実行
- 2026-10-10 03:00 UTC
次回以降の実行
- 土 2026-10-10 03:00
- 日 2026-10-11 03:00
- 月 2026-10-12 03:00
- 火 2026-10-13 03:00
- 水 2026-10-14 03:00
- 木 2026-10-15 03:00
タスクをいつ実行するかを指定すると、対応するcrontabの行を書き出します。次に実行される日時も表示するので、結果をうのみにせず確かめられます。
仕組み
頻度によって、5つのフィールドのうちどれを固定し、どれを開けておくかが決まります。1時間に1回なら分を固定し、1日1回ならさらに時を固定します。週1回なら曜日を、月1回なら日を、年1回なら月も加えます。1時間に複数回の場合は、分のフィールドに時の始まりから数えたステップを書きます。
書き出した式は、読み解きツールと同じパーサーでもう一度読み込まれ、実行日時と説明文はその読み込み結果から作られます。式そのものから導いたこと以外、結果について何も主張しません。
日のフィールドを2つ以上固定することはないので、ここで書き出す式がcronの日のルール(どちらか一方の制限に一致すれば十分というルール)の影響を受けることはありません。
例
| ケース | 入力 | 結果 |
|---|---|---|
| 夜間のバックアップ | 1日1回、03:30 | 30 3 * * * |
| 15分ごと | 1時間に複数回、15分ごと | */15 * * * * |
| 月曜朝のレポート | 週1回、月曜日の08:00 | 0 8 * * 1 |
よくある質問
「平日の9時と17時」を作れないのはなぜですか?
cronが受け付けるすべての形に対応するフォームは、入力欄が増えただけのcrontab構文そのものになってしまうからです。ここにある頻度でほとんどのタスクに必要なものはカバーできます。それ以外の場合は式を自分で書き、読み解きツールで確認してください。入力されたものを何でも説明します。
式はどのタイムゾーンを使いますか?
どれも使いません。crontabの行にはタイムゾーンが含まれず、インストールされたマシンのタイムゾーンで実行されます。ここで選ぶタイムゾーンは、次回の実行日時をどの時計で表示するかを決めるだけです。実際の動きを確認するには、マシンと同じタイムゾーンを選んでください。
毎月31日を指定するとどうなりますか?
式は書き出され、cronは31日のない月を飛ばします。実行日時を見るとわかるとおり、2月、4月、6月、9月、11月は飛ばされます。
「1時間に複数回」は毎時0分ちょうどに実行されますか?
はい。ステップは0分から数えるので、20分ごとなら:00、:20、:40になります。毎時の始まりでまた数え直すので、60を割り切れないステップではそこに短い間隔が生じます。
知っておきたいこと
- 5フィールドのcrontab構文です。`@daily`などの略記や、一部のスケジューラーが加える拡張(秒のフィールド、`L`、`W`、`#`)はここでは書き出しません。
- 次回以降の実行日時はカレンダーから計算しています。夏時間の切り替え時に個々のcronデーモンがどう動くかは実装に依存し、モデル化していません。