要約

このcron式生成ツールは、スケジュール説明やペーストされたcron文字列を、検証済みの5フィールド式(分、時間、月の日、月、曜日)に変換します。5分ごと、平日9時など一般的なプリセットを選ぶか、各フィールドを直接編集。範囲、リスト、ステップ値に対応。ツールはスケジュールをプレーン説明で表示し、次の5回の実行時刻をUTCで計算します。vixie-cronとKubernetes CronJobと同じ日付フィールドのOR論理を使用しているため、ここで表示される内容は本番で実行される内容と一致します。

スケジュール設定とロールアウトウィンドウ向けのCron式生成ツール

プリセットから「cron式 生成ツール」で5フィールド式を構築するか、ペーストして確認。スケジュール確定前に、明確な説明と次の5回の実行時刻を確認します。

Cron式生成ツール

下からフィールドまたはプリセットを選択します。式、説明、および次の5回の実行時刻がリアルタイムで更新されます。

0 9 * * 1-5

仕組み

このcron式生成ツールの仕組み

5フィールド、標準構文

分、時間、月の日、月、曜日:crontab、GitHub Actions schedule、Kubernetes CronJobが読む同じフィールド。範囲(9-17)、リスト(1,15,30)、ステップ(*/5)、ワイルドカードは本番と同じように解析されます。

日付フィールドはANDではなくORです

月の日を1、曜日を月曜日に設定すると、ジョブは月の初日または任意の月曜日に実行され、両者が一致する場合のみではありません。これはvixie-cronとKubernetes CronJobが実際に評価する方法であり、ほとんどのジェネレーターがスキップする詳細です。

次の5回の実行、リアルタイム計算

編集するたびに、実際のカレンダーを進めながら5つのUTCタイムスタンプを再計算します。2月30日などのような起動できないスケジュールは、crontabで静かに止まるのではなく、ここに空白として表示されます。

構築するだけでなく、チェックするために貼り付ける

チームメート、CronJobマニフェスト、または古いStack Overflowの回答からcron文字列がありますか?フィールドにペーストして、同じ説明と実行時刻を取得します。別のバリデーターは不要です。

使い方

空白フィールドから信頼できるスケジュールへ

  1. 1

    プリセットから開始

    一般的なスケジュール(5分ごと、平日9時、毎月1日)を選択するか、デフォルトのままにしてそこから調整します。

  2. 2

    重要なフィールドを調整

    クイック選択ドロップダウンを使用するか、直接入力:コンマリスト、範囲のダッシュ、ステップの*/Nはすべてのフィールドで機能します。

  3. 3

    出荷前に確認

    明確な説明を読み、次の5回の実行時刻をメンテナンスウィンドウまたはSLOバジェットに対して確認してから、式をcrontab、CIスケジュール、またはCronJobマニフェストにコピーします。

実装の詳細

月の日と曜日フィールドがOR論理を使用する理由

Linux crontabとKubernetes CronJobの背後にある実装であるPOSIX/vixie-cronには、ほとんどの人が読むことのない奇妙なルールがあります。月の日と曜日フィールドの両方が*から制限されている場合、ジョブはどちらか一方が一致するときに実行され、両方が一致するときのみではありません。月の日を1、曜日を月曜日に設定すると、スケジュールは月の初日と毎月曜日に起動し、初日である月曜日にのみではありません。どちらかのフィールドを*のままにしておくと、制限されたフィールドのみが日を制約します。このジェネレーターはその慣例に従っています。なぜなら、それは実際にcrontabを実行するもので、簡略化されたバージョンではないからです。それは最も重要なのは、プラットフォームチームが夜11時に書く種類のスケジュールです:最初の営業日または月の初日に実行してください。最初に来る方、ほとんどの人にはANDのように見え、本番ではORのように動作します。

  • POSIX/vixie-cron(Linux crontab、Kubernetes CronJob):いずれかの日フィールドが制限されるとOR
  • Quartz cron(Javaベースのスケジューラーで一般的):通常、2つの日フィールドの1つを*の代わりに?のままにする必要があり、曖昧さを完全に回避します
  • このジェネレーターはPOSIX/vixie-cron慣例に従います。crontabとCronJobが実際に実行するものだからです
エンジニアのデスク、サーバーラックの前にあるアナログ時計とギアのマクロショット

一般的な質問

このcron式生成ツールは無料ですか?
はい。ブラウザ内で完全に実行され、アカウント不要、レート制限なし、匿名ページビュービーコン以外のデータは送信されません。
次の実行時刻は何のタイムゾーンで表示されますか?
UTC。ほとんどのcrontab、GitHub Actionsスケジュール、Kubernetes CronJobリソースはUTCまたはコンテナのシステム時刻にデフォルト設定されているため、タイムゾーン変換エラーを回避します。正確な時間に頼る前に、自分のシステムのタイムゾーンを確認してください。
月の日1と曜日の月曜日が両方で実行され、重複するときだけではないのはなぜですか?
それはcron自体がどのように動作するかだからです。Linux crontabとKubernetes CronJobを含む標準のvixie-cron実装は、いずれかが*から制限されるとOR論理でこれら2つのフィールドを評価します。このツールはその動作に意図的に一致します。
「@daily」、「@reboot」、または他のショートカットマクロをサポートしていますか?
いいえ、5つの標準数値フィールドのみです。これはほとんどのオーケストレーターが必要とするものだからです。@dailyは0 0 * * *にマップされ、@hourlyは0 * * * *に、@weeklyは0 0 * * 0にマップされます。
スケジュールはサーバーに送信されますか?
いいえ。解析、明確な説明、および次実行計算はすべてクライアント側で実行されます。入力するフィールドについて何も送信または保存されません。
次の実行計算は夏時間を考慮していますか?
いいえ、すべてはDSTがないUTCで計算されます。cronデーモンを実行しているシステムがDSTでローカル時間を使用する場合、1年に2回、遷移日の周辺で個別にオフセットを確認してください。
数字の代わりに月または曜日の名前を入力できますか?
はい。janからdecまで、sunからsatまでは、月フィールドと曜日フィールドで数値1~12および0~6の範囲と並行して機能し、範囲とリストを含みます。

Cronジョブが起動します。それがトリガーするデプロイを何がゲートするか?

upstreamapi は機能フラグロールアウトを SLO バジェットに結び付けるため、cron トリガーデプロイはポケベルが鳴る前に自動ロールバックでき、その後ではなく。