⌘K でツールを切替
TIME
Crontab式エディター
Crontab式を解析して次回実行日時をプレビューします。
§01 このツールについて
概要
多くの cron ツールは「式が構文として通るか」を教えてくれます。しかし利用者が 本当に知りたいのはいつ発火するのか、そして意図より頻繁に動いていないかです。
このエディタは5つのフィールドを言葉に読み下したうえで、今後7日間の 1時間あたり発火回数をヒートマップで示します。毎晩1回のつもりだったジョブが 毎時点灯していれば、ログが埋まるずっと前に一目で分かります。
使い方
- 式を入力するか、プリセットから始めます。
- 5つのフィールドカードを読みます。生のトークン・意味・一致する値の数が出ます。
- ヒートマップを確認します。行が日、列が時間で、明るいセルほどその時間の発火が多いことを示します。
- 横に並ぶ正確な次回実行時刻と、それぞれが何時間後かを確認します。行をクリックすると ISO 8601 形式でコピーできます。
- ヘッダーで自分のゾーンと UTC を切り替えると、サーバーが実際に使う時計で同じスケジュールを読めます。
使用例
*/15 9-17 * * 1-5— 平日の業務時間中に15分おき。ヒートマップは月〜金が塊で点灯し、週末が空になります。0 3 * * *— 毎晩3時。各行にセルが1つだけ点きます。0 0 13 * 5— 落とし穴。これは「13日の金曜日」ではなく、毎月13日と毎週金曜日の両方で発火します。両方の日フィールドが制限されている場合は警告を出します。
注意事項
フィールドは 分・時・日・月・曜日 の順です。曜日は 0〜7 を受け付け、0 と 7 は どちらも日曜を意味します。
プレビューは最大2年先まで探索します。2月30日のようにその範囲で一度も発火しない 式は、説明の無い空リストではなく、その旨を明示します。
FAQ
表示される時刻はどのタイムゾーンですか?
選んだ方です。cron 自体にタイムゾーンの概念は無く、実行するホストのローカル時計で発火します。そのためヘッダーで自分のゾーンと UTC を切り替えられるようにしており、スケジュール全体をその時計で読めます。サーバーが UTC で動いていて手元がそうでなければ、この切替がそのまま差になります。
「日」と「曜日」についての警告は何ですか?
POSIX cron はここで直感に反する動きをするためです。両方のフィールドが制限されているとき、cron は「どちらか一方」が一致した時点で発火します。したがって 0 0 13 * 5 は毎月13日と毎週金曜日の両方で動きます。片方が * の場合は通常どおり AND で判定されます。
@daily や曜日名には対応していますか?
はい。@yearly / @annually / @monthly / @weekly / @daily / @midnight / @hourly を展開し、mon-fri や jan のような名前も使えます。@reboot は意図的に拒否しています。起動時に発火するものなので、プレビューすべきスケジュールが存在しないためです。
6フィールドの式はどうなりますか?
それは Quartz や Spring で使われる秒精度の方言で、POSIX cron ではありません。フィールドを読み違えて黙って表示するのではなく、その旨を明示します。