CRON_TESTERLocal
cron 式テスター
5 フィールド標準 cron、秒付き 6 フィールド、@daily などのショートカットを解析し、JST など指定 TZ で次回実行時刻 10 件を表示します。
入力値はブラウザ内だけで処理され、サーバーには送信されません。通信方式について
cron 式テスターでできること
cron 式を日本語の実行周期として読み解き、指定タイムゾーンで次回実行時刻を確認します。OS の crontab は 通常 5 フィールドで、cron は毎分チェックして条件に一致するジョブを実行します。
生成/確認手順
- 実行周期を言語化する: 例として「平日 9:00」「5 分ごと」「毎月 1 日 0:00」のように、先に日本語で条件を決めます。
- 5 フィールドへ分解する: 分、時、日、月、曜日の順に値、範囲、リスト、ステップを入れます。
- 次回実行時刻を確認する: 指定タイムゾーンで次回 10 件を見て、期待する日付と曜日になっているか確認します。
- OS 実装差を確認する: 秒付き式や特殊文字は cron 実装で差があるため、本番投入前に対象 OS の man page とステージング環境で確認します。
- 監視とログを用意する: cron の実行ログ、失敗通知、排他制御を準備し、重複実行や DST の影響に備えます。
cron フィールド表
フィールド
分
範囲
0-59
使い方
*/5 で 5 分ごと、0,30 で 0 分と 30 分
フィールド
時
範囲
0-23
使い方
9-17 で 9 時から 17 時
フィールド
日
範囲
1-31
使い方
月末差や存在しない日付に注意
フィールド
月
範囲
1-12 または名前
使い方
JAN などの名前は実装差に注意
フィールド
曜日
範囲
0-7 または名前
使い方
0 と 7 が日曜になる実装が多い
systemd timer との違い
cron は単純な時刻指定に向きます。systemd timer はサービス unit と組み合わせ、起動遅延、依存関係、 missed run の扱い、ログ統合などを管理できます。単純な定期実行は cron、サービス運用まで含む場合は systemd timer を検討します。
結果の読み方/次の一手
- 次回実行時刻が期待より多い場合は、日付と曜日の OR 動作を疑います。
- 秒付き 6 フィールドは OS の crontab にそのまま投入できないことがあります。
- DST のあるタイムゾーンでは、切り替え日付の前後を別途確認します。
- 本番投入前にログ出力、排他制御、失敗通知をセットで確認します。
よくある質問
- 標準 cron は何フィールドですか?
- 一般的な crontab は分、時、日、月、曜日の 5 フィールドです。実装やライブラリによっては秒付き 6 フィールドを扱うことがありますが、OS の cron と同じ意味とは限りません。
- 日付と曜日を両方指定すると AND ですか?
- 多くの crontab 実装では、日付フィールドと曜日フィールドの両方が制限されている場合、どちらかに一致した日に実行されます。実運用では対象 OS の crontab man page を確認してください。
- @daily と 0 0 * * * は同じですか?
- @daily と @midnight は通常、毎日 0 時 0 分を表します。@hourly、@weekly、@monthly、@yearly なども実装により用意されています。
- 夏時間で実行がずれることはありますか?
- あります。cron は指定タイムゾーンの時計に従うため、DST の切り替えで存在しない時刻や重複する時刻が発生すると、実行されない、または複数回実行される可能性があります。