cron式の解説・次回実行時刻

「分 時 日 月 曜日」の5項目のcron式を日本語で説明し、基準の時刻から数えた次回の実行時刻を一覧にします。ブラウザの時刻とUTCを切り替えられ、うるう日や31日がない月も正しく飛ばします。

読み込み中…

使い方と仕様

「分 時 日 月 曜日」を空白で区切った5項目の式を入れると、日本語の説明と、次に実行される時刻(既定は10件)が出ます。使える書き方は、* (すべて)、, (リスト)、- (範囲)、/ (間隔)で、*/15 と 5-30/5 の両方に対応します。月は JAN〜DEC、曜日は SUN〜SAT の英名も使え、大文字小文字は区別しません。曜日の 0 と 7 はどちらも日曜です。@hourly @daily @midnight @weekly @monthly @yearly @annually も受け付けます(@daily と @midnight は 0 0 * * *、@weekly は 0 0 * * 0)。

日と曜日の両方に * 以外を書いたときは、標準の cron(Vixie cron)の動きに合わせて、どちらか一方に合う日に実行されます。たとえば 0 0 13 * 5 は「13日、または金曜日」で、「13日の金曜日」ではありません。片方の先頭が * のとき(* や */2)は、もう片方の条件だけで決まります。ここは cron の実装によって動きが違うことがあるので、実際に動かすソフトの説明も確かめてください。

次回の実行時刻は、基準の時刻より後を、1分単位で探して並べます。0 0 29 2 * は次のうるう年の2月29日、0 0 31 * * は31日がある月だけを選びます。約8年先まで探して見つからない式は、その旨を表示します(0 0 30 2 * は、存在しない日なので一度も実行されません)。時刻は、ブラウザのローカル時刻かUTCのどちらかで数えます。

Quartz 形式(秒つきの6〜7項目、? L W # を使うもの)や、AWS・GitHub Actions など、サービスごとの独自の拡張には対応していません。@reboot も、時刻がないので解説できません。間違いがあるときは、どの項目のどの部分かを示します。説明文は日本語に直したもので、実行を保証するものではありません。実際に動かすソフトのタイムゾーンの設定は、このツールでは分かりません。

よくある質問

日と曜日の両方を指定すると、AND ではなく OR になるのはなぜですか?
標準の cron(Vixie cron)の決まりです。日と曜日の両方が * でないときは、どちらかに合えば実行されます。「毎月13日かつ金曜」のような条件は cron の式だけでは書けないので、毎日(または金曜)に動かして、スクリプトの中で日付を確かめる形にします。
6項目や、? が入った式は使えますか?
使えません。秒つきの6項目、?・L・W・# を使う式は Quartz 形式で、このツールは標準の5項目 cron だけを扱います。
*/7 のような、60で割り切れない間隔はどうなりますか?
0分から数えて 0, 7, 14, …, 56 分に実行され、次の時の 0分に戻ります。56分の次は4分後(0分)なので、7分間隔にはなりません。説明文も「7分ごと」とは書かず、分を並べます。

関連ツール