ブログ
日本語

cron式 チェッカー — 意味の確認と次回の実行日時

5/6フィールド対応のcron式解説、次の5回の実行日時、タイムゾーン指定

ブラウザー内で処理・アップロード不要

例を読み込む

5フィールド形式:分 時 日 月 曜日 · 6フィールド形式:秒 分 時 日 月 曜日

5 分ごと

わかりやすく言うと

5 分ごと

次の5回の実行日時

    cron式 チェッカーとは

    */5 * * * *のような短いcron式は、数か月前に自分で書いたものでも意味がわかりにくいものです。ここに入力すると、その意味を文章で説明し、実際に実行される次の5回の日時を、選んだタイムゾーンで計算します。説明文はオープンソースのcronstrueライブラリーで生成しています。

    使い方

    1. cron式を入力するか、例のボタンを押します。5フィールドの形式と、秒付きの6フィールドの形式のどちらも使えます。
    2. 「わかりやすく言うと」の欄で意味を確認します。
    3. タイムゾーンを選ぶと、次の5回の実行日時がそのタイムゾーンで計算し直されます。初期設定はブラウザーのタイムゾーンです。
    4. @dailyのような別名を使った場合は、それが表す標準の式が横に表示されます。

    仕組み

    • フィールドの順番:5フィールドは分(0〜59)・時(0〜23)・日(1〜31)・月(1〜12)・曜日(0〜7)で、6フィールドは先頭に秒(0〜59)が付きます。曜日は0と7がどちらも日曜日、1が月曜日です(Unixのcron・Spring)。1が日曜日になるQuartzとは異なります。
    • 各フィールドには*、数字、範囲a-b、リストa,b、間隔*/n・a-b/n・a/nが使えます。月と曜日にはJANやMONのような英語の略称も使えます。日と曜日の?は*と同じ扱いです。
    • 別名:@yearly(0 0 1 1 *)、@monthly(0 0 1 * *)、@weekly(0 0 * * 0)、@daily(0 0 * * *)、@hourly(0 * * * *)
    • 日と曜日のどちらも*でない場合は、どちらか一方が一致すれば実行されます。
    • 次回の実行日時は、選択したタイムゾーンの時計をフィールドごとにたどって求め、最大8年先まで探します。2月30日のように決して来ない日付の場合は、代わりにメッセージを表示します。
    • 式が正しくない場合は、どのフィールドのどの値に問題があるかを示します。

    例

    式 意味
    */5 * * * * 5分ごと
    0 9 * * 1-5 平日の9:00
    0 0 9 * * 1-5 6フィールド:平日の9:00:00
    30 2 1 * * 毎月1日の2:30

    補足

    • サーバーがブラウザーと別のタイムゾーンで動いている場合は実際の実行時刻も変わるので、確認するときはサーバーのタイムゾーンを選んでください。
    • 毎分・毎秒のように頻度の高い式では、次の5回は単純に連続した時刻になります。

    よくある質問

    5フィールドと6フィールドの違いは何ですか?

    5フィールドは「分 時 日 月 曜日」、6フィールドは先頭に秒が付いて「秒 分 時 日 月 曜日」になります。Linuxのcrontabは5フィールド、Springの@Scheduledは6フィールドを使います。このツールはフィールドの数で見分けます。曜日の番号はUnixのcronやSpringと同じで、0と7が日曜日、1が月曜日です。Quartzは1が日曜日〜7が土曜日なので、?と数字の曜日を使った6フィールドの式には警告を表示します。

    Quartzの式も読めますか?

    MONやFRIのように曜日を名前で書いた6フィールドの式は、そのまま読めます。数字の曜日は番号の付け方が違う(Quartzは1が日曜日、このツールは0と7が日曜日で1が月曜日)ため、1日ずれてしまいます。名前で書くか、1を引いてください。?も受け付けるSpring向けの式であれば、警告は気にしなくて大丈夫です。末尾に年が付く7フィールドの形式や、L、W、#の記法には対応していません。

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

    従来のcronの規則に従い、どちらか一方が一致すれば実行されます。たとえば0 0 13 * 5は、毎月13日または毎週金曜日の0時という意味です。どちらかが*なら、もう一方だけが条件になります。

    夏時間の切り替えはどう扱われますか?

    選択したタイムゾーンの時計どおりに計算します。春に時計が進んで飛ばされる時刻は、その日は実行されません。2回現れる時刻は、最初の1回だけ実行します。実際のスケジューラーは実装によって動きが異なる場合があります。

    L、W、#などの拡張記法には対応していますか?

    いいえ。数字、範囲(-)、リスト(,)、間隔(/)、*と?、月と曜日の英語略称(JAN、MON)、別名の@hourly、@daily、@weekly、@monthly、@yearlyに対応しています。それ以外はエラーとして表示します。

    ほしいツールはありますか?