完全無料

Cron 式を 生成・解説

ブラウザ上でcron式をリアルタイムに生成・解説・検証できます。ビジュアルビルダーと式パーサー搭載 — 無料・プライベート・クライアントサイド。

Cron 式
0 */6 * * *
人間が読める説明
Every minute
次回5回の実行時刻
Calculating...

このツールについて

Cron 式は、分、時、日、月、曜日のスケジュールを記述する 5 つ (システムによっては 6 つ) のスペースで区切られたフィールドです。各フィールドは、数値、範囲、リスト、増分、およびワイルドカードを受け入れます。 Cron は 1970 年代後半以来、事実上の Unix スケジューリング形式であり、現在では Unix をはるかに超えて、Kubernetes CronJobs、GitHub Actions、AWS EventBridge ルール、Jenkins ジョブ、および本番環境のその他のほぼすべてのスケジューリング システムで使用されています。

cron 式を手動で読み書きすると、エラーが発生しやすくなります。フィールドは位置的なものであり、月日と曜日の相互関係は明白ではありません (両方ではなく、どちらかのフィールドの値がジョブをトリガーします)。また、間違いによって、正しく見えても間違ったタイミングで起動されるスケジュールが暗黙的に生成されます。平易な英語のスケジュールを正しい cron 構文に変換するジェネレーターを使用すると、これらの間違いを回避できます。

このツールは 2 つの方向を提供します。1 つはわかりやすいフォームからの cron 式の構築 (毎週月曜日の午前 9 時、営業時間中は 5 分ごと)、もう 1 つは人間の言葉で既存の cron 式を説明することです。どちらもサーバーとの対話なしでブラウザ内で実行されます。

Cron ジェネレーターを使用する理由

Cron 構文は緻密で容赦がありません。よくある間違いには、曜日の番号付けを混乱させる (日曜日はシステムによって 0 または 7 になる)、月の日と曜日が OR セマンティクスを使用することを忘れる、増分構文の誤解 (*/5 は 0 から始まる 5 ごとを意味します) などがあります。ジェネレーターはこれらを構築によって捕捉します。生成された式は、フォームに記述されたものと一致します。

既存の式を読み取るのも同様に困難です。 0 9 * * 1-5 のようなスケジュールは、構文を理解していれば毎日午前 9 時に平日となりますが、cron に詳しくない人は各フィールドを調べる必要があります。人間の言葉で式を説明する方が、1 回限りの対話の構文を学ぶよりも早いです。

使い方

スケジュール パターンを選択し、cron 式を取得します。

  1. 生成モードの選択: フォーム入力 (頻度、時間、日数) から cron 式を構築するか、既存の式を人間の言葉で説明します。
  2. スケジュールを設定する: 頻度を選択します (毎分、毎時間、毎日、毎週、毎月、カスタム)。必要に応じて、時刻、曜日、間隔を指定します。フォームは入力を有効な組み合わせに制限します。
  3. 生成または説明: 生成により、標準の cron 構文 (5 つのフィールド) が生成されます。説明は各フィールドに分けて、人間が読める概要を提供します。
  4. スケジューラーで使用する: 生成された式を Kubernetes CronJob 仕様、GitHub Actions スケジュール、AWS EventBridge、またはプラットフォームのスケジューラーに貼り付けます。

一般的な使用例

技術的な詳細

標準 cron には、分 (0 ~ 59)、時間 (0 ~ 23)、日 (1 ~ 31)、月 (1 ~ 12)、曜日 (0 ~ 6 または 0 ~ 7、どちらも日曜日) の 5 つのフィールドがあります。各フィールドは、単一の値、カンマ区切りのリスト、ハイフンを含む範囲、/ を使用した増分、または * を使用したワイルドカードを受け入れます。

月の日と曜日は OR セマンティクスを使用します。どちらかが非ワイルドカード値に設定されている場合、どちらかが一致するとジョブが実行されます。これは直感に反しますが、POSIX cron の動作と一致します。両方のフィールドを設定すると、狭いスケジュールではなく、より広いスケジュールが作成されます。

拡張子は実装によって異なります。秒の 6 番目のフィールドを受け入れるものもあります (Quartz、Spring)。受け入れる人もいますか?ワイルドカードの代替手段として。一部には、@yearly、@monthly、@daily のショートカットが含まれます。ジェネレーターは、ほとんどのシステムに適した標準の 5 フィールド cron を生成します。

ベストプラクティス

よくある質問

cronの表現形式とは何ですか?
標準の cron は、分 (0 ~ 59)、時間 (0 ~ 23)、日 (1 ~ 31)、月 (1 ~ 12)、曜日 (0 ~ 7、0 と 7 は日曜日) の 5 つのフィールドを使用します。特殊文字: * (任意)、, (リスト)、- (範囲)、/ (ステップ)。
ジョブを 5 分ごとに実行するように設定するにはどうすればよいですか?
分のフィールドに */5 を使用します: '*/5 * * * *'。 /5 は「5 番目ごとの値」を意味します。同様に、*/15 = 15 分ごと、*/2 = 2 分ごとです。
cron はどのタイムゾーンを使用しますか?
Cron は通常、システムのタイムゾーンを使用します。 Linux サーバーでは、特に設定されていない限り、これは通常 UTC です。クラウド サービス (AWS、GCP) は多くの場合、デフォルトで UTC になります。システムのタイムゾーン設定を常に確認してください。
これは GitHub Actions で使用される形式と同じですか?
GitHub Actions は同じ 5 フィールド形式を使用しますが、UTC タイムゾーンで実行されます。 AWS CloudWatch および Kubernetes CronJob もこの形式を使用します。 Quartz などの一部のシステムでは、秒を含む拡張 6 ~ 7 フィールド形式が使用されます。
曜日の 0 と 7 の違いは何ですか?
どちらも日曜日を意味します。 POSIX cron は 0 ~ 6 または 0 ~ 7 を受け入れます。特定の cron 実装で優先されるものを使用してください。ほとんどは両方を受け入れます。
説明は非標準の cron に対して正確ですか?
標準の 5 フィールド cron をターゲットとしています。 Quartz 拡張機能 (秒付き)、AWS EventBridge バリアント、およびその他の方言は正しく解析されない可能性があります。宛先システムのドキュメントと照らし合わせて確認してください。
私の式はサーバーに送信されますか?
いいえ、生成と説明はブラウザ内で行われます。
@yearly、@monthly のショートカットはどうですか?
一般的な cron 実装では、共通スケジュールのショートカットとして @yearly、@monthly、@weekly、@daily、@hourly、および @reboot がサポートされています。ジェネレーターは標準の 5 フィールド式を生成します。スケジューラがショートカットを受け入れる場合は、手動でショートカットを置き換えることができます。