要約

この cron 式ジェネレーターは、標準的な5項目の cron スケジュールをブラウザ内で作成し、検証します。プリセットを選ぶか、分・時・日付・月・曜日を編集してください。ツールは式を平易な言葉で説明し、項目ごとの内訳を示し、UTC またはお使いのタイムゾーンで次の5回の実行時刻を一覧にします。日付と曜日の組み合わせには、標準の cron のルールを適用します。サーバーへの送信はなく、登録も不要です。

無料の cron ツール

cron 式 ジェネレーター:スケジュールを数秒で作成してプレビュー

プリセットを選ぶか、5つの項目を入力してください。わかりやすい説明、項目ごとの内訳、次の5回の実行時刻を、すべてブラウザ内で計算します。

cron 式 ジェネレーター

プリセットから始めるか、5つの項目を直接編集してください。式、その意味、次の5回の実行時刻は入力に合わせて更新されます。

0-59
0-23
1-31
1-12 または JAN-DEC
0-7 または SUN-SAT
0 9 * * *

項目ごとの内訳

    次の5回の実行

      crontab の行

      仕組み

      このツールが5つの項目をどう処理するか

      各項目を個別に解析します

      各項目は、単一の値、リスト(1,15)、範囲(1-5)、ステップ(*/10)、またはそれらの組み合わせを受け付けます。JAN や MON-FRI などの月・曜日の名前も使えます。範囲外の値や逆向きの範囲は、誤りのある項目ごとに指摘されます。

      実際の cron の一致ルールを適用します

      時刻は、分・時・月がリストに含まれ、日付の判定を満たすとき一致します。日付と曜日の両方が制限されている場合、cron はどちらか一方に一致すれば実行します。どちらかがアスタリスクで始まる場合は、両方に一致する必要があります。

      カレンダーをたどって今後の実行を一覧にします

      スクリプトは現在の分から日付を順に進め、日付の判定を通過した日を残し、該当する時と分を順番に並べます。8年先までを検索するので、2月29日のスケジュールも見つけられます。

      構文

      cron が読む順番に並んだ5つの項目

      cron の行は、スペースで区切られた5つの項目と、その後に続くコマンドで構成されます。順序は常に、分、時、日付、月、曜日です。ミスの多くは最初の2つを取り違えることから起きます。たとえば午後2時に実行したいスケジュールが、毎時14分に実行されてしまいます。左から順に読み、確定する前に各項目を声に出して確認してください。

      • 分: 0-59
      • 時: 0-23(24時間制)
      • 日付: 1-31
      • 月: 1-12 または JAN-DEC
      • 曜日: 0-7 または SUN-SAT(0 と 7 はどちらも日曜日)
      • 記号: * はすべての値、, はリスト、- は範囲、/ はステップ
      薄暗い部屋にあるサーバーラックと、緑とシアンのステータスランプ
      実際によく起きる不具合

      週末をつぶす cron の落とし穴

      実行環境がほぼ空っぽ

      cron は最小限の PATH とシェルのプロファイルなしでジョブを起動します。ターミナルで動くスクリプトも、cron からは静かに失敗することがあります。コマンドや読み込むファイルには絶対パスを使い、出力はログファイルにリダイレクトしてエラーを確認できるようにしてください。

      パーセント記号がコマンドを終わらせる

      crontab の行では、エスケープされていない % は改行として扱われ、その後ろの内容がコマンドへの入力として渡されます。date +%F のような日付形式では、各 % をバックスラッシュでエスケープする必要があります。コマンドをスクリプトに書けば、この問題は消えます。

      毎分実行は本当に必要なことが少ない

      毎分実行され、処理に90秒かかるジョブは、自分自身と重なって動きます。長いジョブはロックで守るか、キューに移してください。数分ごとで十分なら、*/5 のようなステップの方が、ジョブが呼び出す先への負荷も軽く済みます。

      タイムゾーンは自分の設定とは限らない

      crontab はサーバーのタイムゾーンを使います。ホスト型のスケジューラーは通常 UTC を使います。09:00 に設定したジョブは、マシンの所在地によっては、台北では 17:00、バンコクでは 04:00 に実行されることがあります。行の横のコメントにタイムゾーンを明記してください。

      曜日と日付は OR で組み合わさる

      両方の項目を制限しても、スケジュールは絞り込まれず、むしろ広がります。毎月最初の月曜日を指定したい場合、5項目の式では直接表現できません。ジョブは毎週月曜日に実行し、スクリプトで日付が7以下であることを確認させてください。

      ジョブの前にスケジュールを検証する

      まずここで次の5回の実行を確認し、同じ環境でコマンドを手動実行してください。小さな確認を2回行う方が、一度も動かなかった夜間バックアップをデバッグするより確実です。日付をファイルに書き出すような、害のないコマンドから始めてください。

      cron 式についてのよくある質問

      この cron 式ジェネレーターは無料ですか。スケジュールを外部に送信しますか。
      無料で、登録も不要で、すべてブラウザ内で動作します。入力した式は、このページの小さなスクリプトがローカルで解析します。何もアップロードされません。通信は、ツールが使われたことを記録する匿名のカウンターのみです。
      cron 式には項目がいくつありますか。
      標準的な Unix cron では5つです。順番に、分、時、日付、月、曜日です。スケジューラーによっては6つ目の項目を追加するものがあります。Quartz は先頭に秒を置き、AWS EventBridge は年の項目を加え、「?」を使います。このツールは5項目の形式のみに対応しています。別のシステムに使う場合は、そのドキュメントで追加の項目を確認してください。
      日付と曜日の両方を指定すると、予想外の日にジョブが動くのはなぜですか。
      標準の cron は、両方の項目が制限されている場合、2つを OR として扱うからです。式 0 0 13 * 5 は、毎月13日と毎週金曜日に実行されます。金曜日の13日だけではありません。どちらかの項目がアスタリスクだけ、またはアスタリスクで始まる場合は、代わりに AND として判定されます。上のプレビュー一覧はこのルールを適用しているので、デプロイ前に実際の日付を確認できます。
      次の実行時刻はどのタイムゾーンを使いますか。
      選択できます。多くのクラウドのスケジューラーは UTC で cron を実行するため、既定は UTC です。2つ目の選択肢はブラウザのタイムゾーンを使います。自分のサーバーでは別のタイムゾーンが使われていることもあるので、時刻を信頼する前に、マシンのタイムゾーン設定かスケジューラーのドキュメントを確認してください。
      同じ式は GitHub Actions、Kubernetes、crontab で動きますか。
      5つの項目の意味は3つすべてで同じです。GitHub Actions はスケジュールを UTC で評価し、許可される最短の間隔は5分ごとです。Kubernetes の CronJob は同じ5項目を使い、新しいバージョンではタイムゾーンを設定できます。従来の crontab はマシンのタイムゾーンを使います。@daily のような特殊文字列は多くの crontab 実装で受け付けられますが、すべてのスケジューラーで使えるわけではありません。迷ったら5項目の形式を使ってください。
      */15 や 10/20 のようなステップは何を意味しますか。
      ステップは、範囲の中から n 番目ごとの値を選びます。分の項目で */15 は 0、15、30、45 を意味します。10/20 のように開始値とステップを組み合わせると、その値からその項目の終わりまで実行されます。つまり 10、30、50 分です。時の項目の 8-18/2 のように範囲とステップを組み合わせると、8、10、12、14、16、18 時を意味します。
      MON-FRI や JAN のような名前を使えますか。
      はい。月と曜日の項目は、大文字小文字を問わず3文字の英語の名前を受け付けます。数字も使えます。月は 1 から 12、曜日は 0 から 7 で、0 と 7 はどちらも日曜日を意味します。
      夏時間の切り替え時にはどうなりますか。
      スケジューラーによって異なります。時計が進むとき、スキップされた時間帯に設定されたジョブは、スキップされるか遅れて実行されることがあります。時計が戻るとき、繰り返される時間帯に設定されたジョブは、2回実行されることがあります。1日に必ず1回だけ実行する必要があるなら、UTC で、または切り替え時刻から離れた時刻に設定してください。

      次に作るものを探していますか?

      cron ジョブは、個人プロジェクトの最初のバックエンドとして適しています。トップページの無料ジェネレーターは、スタックと範囲を含むプロジェクト仕様を、ワンクリックで出力します。