Cron 式 解説ツール
cron 式を貼り付けるだけで、その意味を平易な日本語で説明し、次にいつ実行されるかをタイムゾーン(夏時間を含む)で正確に算出します。
Windows デスクトップ版もあります。
このツールについて
cron 式は、分・時・日・月・曜日という 5 つのフィールドで書かれた簡潔なスケジュールです。読み解くのは大抵簡単ですが、そうでなくなる瞬間があります。0 0 1 * 0 は毎月 1 日なのか、毎週日曜なのか、それとも両方なのか。このツールはその問いに答え、さらに実際にいつ実行されるかを具体的な時刻で示します。
多くの cron ツールは「式を日本語に訳す」ところで止まります。実際にインシデントを起こすのは「次にいつ実行されるか」の部分です。とくに夏時間の切り替えをまたぐ場合、同じ式が年に二度だけ異なる壁時計時刻に対応したり、指定した時刻がその日付に存在しなかったりします。
すべての計算はブラウザ内で完結します。入力した式がどこかに送信されることはなく、登録も不要です。
よくある質問
- タイムゾーンと夏時間は考慮されますか?
- はい。タイムゾーンを選ぶと、次回実行時刻はそのタイムゾーンで、過去と将来の夏時間切り替えを含めて解決されます。春の切り替えで生じる抜けはスキップされ、その旨が報告されます。その日付に存在しない壁時計時刻が実行時刻として返されることはありません。
- 0 0 1 * 0 はどういう意味ですか?
- 毎月 1 日の 0 時と、毎週日曜の 0 時の両方です。「日」と「曜日」の両方が指定されている場合、cron はこれらを「AND」ではなく「OR」として扱います。このツールはどちらか一方を黙って選ぶのではなく、その挙動を明示します。これが最も多い cron の落とし穴だからです。
- MON や JAN のような名前は使えますか?
- 使えます。月と曜日のフィールドでは 3 文字の英語名が使え、大文字小文字は区別されません。
- @daily などの省略記法は使えますか?
- @yearly、@annually、@monthly、@weekly、@daily、@midnight、@hourly に対応し、展開されます。@reboot は対応していません。予測できる実行時刻がなく、「起動時」という意味でありスケジュールではないからです。
- 秒を含む 6 フィールドの式は使えますか?
- 使えます。6 フィールドが指定された場合、最初のフィールドを秒として扱います。これは Quartz と systemd timer の慣例です。
- 正しい式なのに実行時刻が出ないことがあるのはなぜですか?
- 決して実行されない式があります。たとえば 0 0 31 * * を 31 日のない月に指定した場合や、日と曜日が決して同時に成立しない組み合わせです。探索範囲内で実行時刻が見つからない場合、ツールは答えを捏造せずにその旨を伝えます。