Cron 式パーサー
Cron 式を貼ると自然言語の説明 + 次の 10 回の実行時刻 + フィールドごとの意味を表示。よく使う例のテンプレートも。
完全無料
登録不要
ブラウザ完結
5 言語対応
ダークモード
📖 Cron 式の書き方
- •
*— 任意の値 - •
5,10,15— リスト - •
1-5— 範囲 - •
*/15— 間隔 (15 ごと) - •
@hourly @daily @weekly @monthly @yearly— エイリアス
📖 つまずきやすいポイント
Cron 式を貼ると、自然言語の説明と次の 10 回の実行時刻を計算します。計算に使うのはあなたのブラウザのタイムゾーンで、実際にジョブが動くサーバーのタイムゾーンではありません。また、式が正しいこととジョブが実際に動くことは別問題です。cron デーモンが起動しているか、実行ユーザーの権限とパスが通っているかまでは、ここでは分かりません。
| ケース | 何が起きるか | どうする |
|---|---|---|
| 日と曜日を両方指定した | この 2 つをどちらも * 以外にすると、AND ではなく OR で解釈されます。0 0 1 * 1 は「毎月 1 日 かつ 月曜」ではなく「毎月 1 日 または 毎週月曜」で、月に 5 回前後動きます。Vixie cron 由来のこの挙動は直感に反するため、事故の定番です。 |
どちらか一方を必ず * にします。「毎月 1 日が月曜のときだけ」のような AND が必要なら、cron は毎日起動しておき、スクリプトの先頭で日付を判定して早期 return するのが確実です。 |
分以外のフィールドで */n を使った |
*/n は「n で割り切れる値」であって「n ごと」ではありません。0 */5 * * * は 0, 5, 10, 15, 20 時に動き、20 時の次は翌 0 時なので、そこだけ 4 時間空きます。24 が 5 で割り切れないためです。日 (1〜31) でも月末で同じことが起きます。 |
等間隔にしたいなら値を明示的に列挙します。6 時間おきなら 0 0,6,12,18 * * *。分なら 60 が 5・10・15・20・30 で割り切れるので */5 は素直に等間隔になります。時間帯を絞りたいときは 0 9-18 * * 1-5 のように範囲で書けます。 |
| 手で叩くと動くのに cron では動かない | cron が渡す環境はログインシェルとまったく違います。PATH は /usr/bin:/bin 程度しかなく、.bashrc も読まれず、NVM_DIR や rbenv の初期化も走りません。しかも標準出力と標準エラーは (メール設定が無ければ) どこにも残らないので、失敗したことにすら気付けません。 |
コマンドは絶対パスで書き (which node の結果をそのまま)、crontab の先頭に PATH= と CRON_TZ=Asia/Tokyo を宣言し、行末に >> /var/log/myjob.log 2>&1 を付けます。切り分けのときは * * * * * env > /tmp/cronenv を 1 分だけ仕掛けると、cron が実際に渡している環境がそのまま見られます。 |
このパーサーは 5 フィールド (分 時 日 月 曜) の標準 cron を対象にしています。先頭に秒を加えた 6 フィールド形式は、Quartz や node-cron、Spring の @Scheduled といった実装独自の拡張で、Linux の crontab には通りません。逆に @daily や @reboot のような特殊文字列は crontab では使えても多くのライブラリでは解釈されません。動かす先の実装のドキュメントで、必ず一度確かめてください。
📖 使い方
-
1
5 フィールド: 分 時 日 月 曜左から「分 (0-59) 時 (0-23) 日 (1-31) 月 (1-12) 曜日 (0-6, 0=日)」
-
2
特殊文字: * / , -* = すべて、*/N = N ごと、A,B = AまたはB、A-B = AからB
-
3
実行時刻を確認右側の「次の 10 回」で意図通りか必ず確認してから本番投入
❓ よくある質問
6 フィールド (秒含む) はサポート?
現状 5 フィールド標準 (Linux crontab) のみ。Quartz / Spring の秒付きは未対応
複雑な式の確認に?
「次の 10 回」で実行時刻を確認するのが一番確実。曖昧な dow と dom の組合せは特に注意
タイムゾーン?
表示はブラウザのローカル時刻。サーバー側の cron が動く TZ と一致するか必ず確認
🔗 関連ツール
🐛 このツールで問題が発生しましたか?
完全無料・登録不要。再現手順だけでも結構です。届いたご報告は運営者に直接届き、修正の参考にします。
✅
ご報告ありがとうございます!
運営者に届きました。改善の参考にさせていただきます。