cron 式ジェネレーター|5 フィールドを人間語の説明付きで生成
分・時・日・月・曜日の 5 フィールドを直接入力するか、毎時・毎日・毎週など 6 種のプリセットから選ぶだけ。出来上がった cron 式・人間語の説明・構文チェック結果を 1 画面で確認。
💡 このツールについて
crontab の * * * * * を毎回頭の中で組み立てるのは骨が折れる作業。「5 分ごとは */5、平日だけは 1-5、日曜は 0」と覚えていても、0 0 1 * *(毎月 1 日 0 時)と 0 0 * * 1(毎週月曜 0 時)の違いをパッと見分けるのは難しいもの。
このツールは 5 つの入力欄に値を打ち込むと、その場で cron 式と「毎週 · 月曜 · 0:00」のような人間語の説明を並べて出すので、組んだ式が意図どおりか即確認できる。*(全範囲)・単一値・A-B(範囲)・A,B,C(リスト)・*/N(ステップ)の 5 構文に対応し、0-59 の範囲を外れる値はその場で構文エラーとして弾く。毎分・毎時・毎日・毎週・毎月・毎年の 6 プリセットを起点に微調整する使い方も便利。
🧐 よくある質問
フィールドの並び順は?
左から分(0-59)・時(0-23)・日(1-31)・月(1-12)・曜日(0-6)の順。秒フィールドは標準 crontab に無いので 5 フィールド構成。
曜日の数字は?
0 が日曜、1 が月曜、…、6 が土曜。多くの cron 実装では 7 も日曜を指すが、本ツールは 0-6 の範囲で扱う。
*/15 のような書き方は?
ステップ構文として対応。分フィールドに */15 と書けば 0・15・30・45 分、つまり 15 分ごとを意味する。
日と曜日を両方指定するとどうなる?
標準の Vixie cron では、日と曜日の両方が * 以外だと「いずれか一致」(OR)で動くのが有名な落とし穴。本ツールは各フィールドの構文と範囲を検証するもので、この OR 判定までは実行環境側の挙動に依存する点に注意。
範囲外の値を入れたら?
時フィールドに 25 のように範囲を超える値を入れると、構文チェックが「構文エラー」を表示する。
📚 cron 構文の豆知識
cron の 5 フィールド書式は、1987 年に Paul Vixie が公開した Vixie cron でほぼ現在の形に固まった。環境変数や @reboot などの拡張が加わってもなお、minute・hour・day-of-month・month・day-of-week という 5 列の並びは数十年変わっていない。
落とし穴として有名なのが、日(day-of-month)と曜日(day-of-week)を両方とも具体値で指定したときの挙動。直感では「15 日かつ月曜だけ」と読みたくなるが、Vixie cron は「15 日 または 月曜」の OR で解釈する。一方 systemd タイマーや一部のクラウドスケジューラは AND で扱う実装もあり、同じ式でも実行基盤によって走るタイミングが変わる。式を組んだら、人間語の説明とあわせて実行環境のドキュメントも一度確認しておくと安全。