cron式の解説・作成ツール
crontabのスケジュールを入力または貼り付けると、いつ実行されるかを分かりやすい日本語で表示し、次の実行日時も正確に一覧にします。よく使うスケジュールから項目ごとに作ることもできます。Linuxのcron、KubernetesのCronJob、GitHub Actionsなど多くのスケジューラーに対応しています。
無料・登録不要
使い方
- 入力欄にcron式を入力または貼り付けるか、よく使うスケジュールをクリックします。
- 入力欄の下に、スケジュールが日本語で表示されます。間違いがあれば項目ごとにすぐ説明されます。
- 次の10回の実行日時を確認します。お使いのタイムゾーンで表示されます。UTCで動くサーバーと比べるときは「UTCで表示」にチェックを入れます。
- 式の下の入力欄で項目ごとに調整します。入力に合わせて式も更新されます。
- 式をcrontabにコピーするか、リンクをコピーしてチームとスケジュールを共有します。
このツールの特長
分かりやすい日本語で解説
どの式も「毎週月曜日〜金曜日、09:30」のような分かりやすい文に変換されます。
次の10回の実行日時
次にいつ実行されるかを、ローカル時間またはUTCで、あとどれくらいかと一緒に確認できます。
項目ごとの作成ツール
分・時・日・月・曜日を別々の入力欄で編集でき、それぞれ使える値が横に表示されます。
分かりやすいエラー表示
範囲外の値、逆向きの範囲、項目数の間違い、Quartz独自の書き方を項目ごとに指摘します。
秒と省略形にも対応
秒付きの6項目の式、MON-FRIやJANなどの名前、@dailyや@rebootなどの省略形に対応しています。
共有できるリンク
式を入れた状態でページが開くリンクをコピーでき、コードレビューやチケットに便利です。
cronの書き方早見表
標準のcron式は、スペースで区切った5つの項目でできています。現在時刻がすべての項目に一致したときにジョブが実行されます。*は「すべての値」を意味します。
| 項目 | 使える値 | 例 | 意味 |
|---|---|---|---|
| 分 | 0–59 | 30 | 30分に |
| 時 | 0–23 | 9 | 午前9時に |
| 日 | 1–31 | 1 | 1日に |
| 月 | 1–12 または JAN–DEC | * | 毎月 |
| 曜日 | 0–7 または SUN–SAT | 1-5 | 月曜日〜金曜日 |
特殊文字
| 文字 | 意味 | 例 |
|---|---|---|
| * | すべての値 | 時の項目に*:毎時 |
| , | 値の列挙 | 0,30:0分と30分 |
| - | 値の範囲 | 1-5:月曜日〜金曜日 |
| / | 間隔 | */15:15分ごと |
| @daily | 省略形 | 0 0 * * * と同じ |
よく使うcronの例
| 式 | 実行タイミング |
|---|---|
| */5 * * * * | 5分ごと |
| 0 * * * * | 毎時0分 |
| 0 0 * * * | 毎日0時 |
| 30 2 * * 0 | 毎週日曜日の2:30 |
| 0 9 * * 1-5 | 平日の9:00 |
| 0 0 1 * * | 毎月1日の0時 |
| 0 */6 * * * | 6時間ごと(0:00、6:00、12:00、18:00) |
| 15 3 * * 1 | 毎週月曜日の3:15 |
よくある落とし穴
- タイムゾーン:cronはサーバーのタイムゾーンを使い、多くはUTCです。日本時間で動かしたいのにUTCのままだと9時間ずれます。KubernetesのCronJobやGitHub Actionsも指定しなければUTCです。
- 日と曜日の同時指定:0 0 1 * 1は「毎月1日」と「毎週月曜日」の両方で実行されます。1日が月曜日のときだけではありません。
- 分の項目の*/7は毎時リセットされます。0、7、…、56分の次はまた0分なので、間隔が4分になります。
- 夏時間:夏時間のある地域では、切り替えの夜に2:00〜3:00のジョブが飛ばされたり2回実行されたりします。
- crontabの行では%に特別な意味があるため、コマンド内では\%と書く必要があります。
よくある質問
cron式とは何ですか?
分・時・日・月・曜日の5項目でできた短いスケジュールです。LinuxやmacOSのcron、KubernetesのCronJob、GitHub Actionsなど多くのスケジューラーが、ジョブをいつ実行するかを決めるのに使います。
crontab.guruと同じですか?
いいえ。同じような目的の、独立した無料ツールです。さらに次の実行日時をローカル時間やUTCで表示し、秒にも対応し、項目ごとの作成ツールを6言語で提供しています。
5分ごとにcronジョブを実行するには?
*/5 * * * *を使います。分の項目の*/5は、0分から始めて5分ごとという意味です。
平日だけ実行するには?
曜日の項目に1-5を入れます。例えば0 9 * * 1-5なら月曜日〜金曜日の9:00です。MON-FRIと書くこともできます。
日曜日は0ですか、7ですか?
どちらも日曜日です。標準のcronでは0と7が日曜日、1が月曜日です。Quartzなど一部のシステムは数え方が違い、1が日曜日です。
月末に実行するには?
標準のcronには月末を表す記号がありません。一部のツールのLはQuartzの拡張です。よく使われる方法は0 0 28-31 * *にして、コマンド側で [ "$(date -d tomorrow +\%d)" = "01" ] && コマンド のように翌日が1日かを確認することです。
実行日時はどのタイムゾーンで表示されますか?
初期設定ではお使いの端末のタイムゾーンです。「UTCで表示」にチェックを入れると、多くのサーバー、コンテナ、クラウドのスケジューラーが使うUTCで表示されます。
秒には対応していますか?
はい。秒フィールドをオンにするか6項目で入力すると、QuartzやSpringと同じように最初の項目が秒として扱われます。標準のLinuxのcronは秒に対応していません。
関連ツール
作りたいものがありますか?
作りたい内容を教えてください。
シンプルなWebサイトから本格的なアプリ、AIソリューション、自動化、カスタムシステムまで、作りたいものをお聞かせください。