cron式の説明

cron式(分・時・日・月・曜の5フィールド)を入力すると、いつ実行されるのかを日本語で説明し、各フィールドの内容も解説します。

入力

分 時 日 月 曜 の順にスペース区切りで入力します(例: */15 9-18 * * 1-5)。

よく使う例

この cron 式の意味

—

※ 標準的な5フィールド cron(Vixie cron 系)を想定しています。曜日は 0 と 7 がどちらも日曜です。@daily などのニックネームや、秒フィールドのある6フィールド形式には対応していません。

解説

cron(クーロン)は、コマンドやジョブを決まった時刻・間隔で定期実行するための仕組みで、その実行タイミングを表す文字列が cron式(crontab の式)です。本ツールは cron式を入力すると、人間が読める日本語の説明文と、各フィールドごとの解説に変換します。式の意味を確認したいとき、レビューやドキュメント作成のときに便利です。

cron式は、左から「分(0〜59)/時(0〜23)/日(1〜31)/月(1〜12)/曜日(0〜7、0と7が日曜)」の5つのフィールドを半角スペースで区切って書きます。各フィールドは順番が決まっており、本ツールは5つそろっていない場合や範囲外の値をエラーとして案内します。

cronの書き方(各フィールドで使える記法)は、* (すべて)、*/n (n間隔のステップ。例: 分の */15 は0・15・30・45分)、a/n (a からそのフィールドの最大値まで n 間隔)、a-b (範囲。例: 1-5)、a,b (列挙。例: 1,15)、および a-b/n や a-b,c のようなそれらの組み合わせです。

具体例として、0 9 * * 1-5 は「平日(月〜金)の 9:00 に実行されます。」、*/15 * * * * は「15分ごと 実行されます。」、0 0 1 * * は「1日の 0:00 に実行されます。」と表示されます。曜日の 1-5 は「平日(月〜金)」、0,6 は「土日」とまとめて表現します。

cron仕様上の重要な注意点として、日(3番目)と曜日(5番目)の両方を具体指定した場合は「どちらかに一致した日」(OR)になります。本ツールも 0 0 1 * 1 を「1日、または 月曜の 0:00」のように、OR として説明します。曜日の 0 と 7 はどちらも日曜として扱います。

本ツールは数値ベースの記法のみに対応します。JAN・MON のような月名/曜日名の略記、@daily・@reboot などの特殊文字列、L・W・# といった拡張記法(一部のcron実装やQuartzで使える)には対応していません。これらを使う場合は、実行環境のドキュメントを併せて確認してください。

よくある質問

cron式の書き方(フィールドの順番)は?

左から「分・時・日・月・曜日」の5フィールドを半角スペースで区切ります。例えば 0 9 * * 1-5 は分=0、時=9、日=*、月=*、曜日=1-5(月〜金)を意味し、「平日の9:00」になります。

「*/15」や「*/5」はどういう意味ですか?

n間隔のステップ指定です。分フィールドの */15 は0・15・30・45分(=15分ごと)、*/5 は0・5・10…(5分ごと)を表します。

毎日9時に実行するcron式は?

0 9 * * * です。分=0、時=9、日・月・曜日をすべて *(毎日)にすると「毎日の 9:00 に実行されます」になります。

曜日の 0 と 7 はどちらも日曜ですか?

はい。一般的なcronと同じく、曜日フィールドは0〜7で、0と7のどちらも日曜として扱います。

@daily や JAN のような書き方は使えますか?

本ツールは数値ベースの記法(* */n a-b a,b とその組み合わせ)のみ対応です。@daily などの特殊文字列や月名・曜日名の略記、L/W/# 等の拡張記法には対応していません。

日と曜日を両方指定するとどうなりますか?

cronの仕様に従い「どちらかに一致した日」(OR)として説明します。例えば「1日、または 月曜」のように表示されます。