要約
この cron 式ジェネレーターは、標準的な5項目の cron スケジュールをブラウザ内で作成し、検証します。プリセットを選ぶか、分・時・日付・月・曜日を編集してください。ツールは式を平易な言葉で説明し、項目ごとの内訳を示し、UTC またはお使いのタイムゾーンで次の5回の実行時刻を一覧にします。日付と曜日の組み合わせには、標準の cron のルールを適用します。サーバーへの送信はなく、登録も不要です。
cron 式 ジェネレーター:スケジュールを数秒で作成してプレビュー
プリセットを選ぶか、5つの項目を入力してください。わかりやすい説明、項目ごとの内訳、次の5回の実行時刻を、すべてブラウザ内で計算します。
このツールが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 式には項目がいくつありますか。
日付と曜日の両方を指定すると、予想外の日にジョブが動くのはなぜですか。
次の実行時刻はどのタイムゾーンを使いますか。
同じ式は GitHub Actions、Kubernetes、crontab で動きますか。
*/15 や 10/20 のようなステップは何を意味しますか。
MON-FRI や JAN のような名前を使えますか。
夏時間の切り替え時にはどうなりますか。
次に作るものを探していますか?
cron ジョブは、個人プロジェクトの最初のバックエンドとして適しています。トップページの無料ジェネレーターは、スタックと範囲を含むプロジェクト仕様を、ワンクリックで出力します。