本文へスキップ
App Museum
English

cron式チェッカー

cron式(crontabの書式)を日本語の説明に直し、次回以降の実行日時を一覧で確認できます。毎日・毎週などの条件を選んで式を作ることもできます。書き方の誤りは、どのフィールドが原因かを示します。

左から 分・時・日・月・曜日 の順に、空白で区切って5つ書きます。

条件を選んで式を作る

選ぶと、上の入力欄に式が入ります。入力欄を書き換えるか入力例を押すと、選択は外れます。

次回実行日時のタイムゾーン

入力例

使い方

  1. 入力欄にcron式を入力します。「条件を選んで式を作る」で毎日・毎週などの条件を選ぶか、「入力例」のボタンを押しても、入力欄に式が入ります
  2. 式の意味が日本語の文で表示され、その下にフィールドごとの内容と、次回以降の実行日時が5回分表示されます
  3. 実行日時を「この端末の時刻」と「UTC」のどちらで計算するかを選びます。ジョブが実際に動くタイムゾーンに合わせてください
  4. 「式をコピー」を押すと、入力欄の式が前後の空白を除いてコピーされます。式を読み取れない間は押せません

入力するたびに結果が更新されます。書き方に誤りがあると、どのフィールドのどの部分が原因かを表示します。

具体例

*/15 9-17 * * 1-5 と入力すると、次のように表示されます。

  • 意味: 毎週月曜日〜金曜日、9時〜17時の15分ごとに実行します。
  • 分 */15: 0分、15分、30分、45分
  • 時 9-17: 9時〜17時
  • 日 *: すべて
  • 月 *: すべて
  • 曜日 1-5: 月曜日〜金曜日

時が 9-17 なので、最後の実行は17時45分です。17時ちょうどで終えたい場合は、*/15 9-16 * * 1-5 と 0 17 * * 1-5 の2行に分けます。

条件を選んで式を作る

「条件を選んで式を作る」で実行の頻度を選ぶと、その下に必要な項目だけが表示され、できた式が入力欄に入ります。項目を変えるたびに式も変わります。最初の値のままなら、次の式になります。

  • 数分ごと: 間隔(分)を1〜59で指定します。5なら */5 * * * *。1なら * * * * *
  • 毎時: 何分に実行するかを指定します。0なら 0 * * * *
  • 数時間ごと: 間隔(時間)を2〜23で、何分に実行するかを0〜59で指定します。2時間ごとの0分なら 0 */2 * * *
  • 毎日: 時刻を指定します。9時なら 0 9 * * *
  • 毎週: 曜日と時刻を指定します。月曜の9時なら 0 9 * * 1
  • 毎月: 日と時刻を指定します。1日の9時なら 0 9 1 * *
  • 毎年: 月、日、時刻を指定します。1月1日の9時なら 0 9 1 1 *

毎週の曜日は複数選べます。日曜を0、土曜を6として小さい順に並べ、3日以上続くところは範囲で書きます。月曜から金曜なら 1-5、月・水・金なら 1,3,5、土曜と日曜なら 0,6 です。7日とも選ぶと * になります。

  • 60を割り切れない分の間隔(7など)と、24を割り切れない時間の間隔(5など)を指定すると、等間隔にならないことを式の下に表示します
  • 毎月で29〜31日を指定すると、その日がない月には実行されないことを表示します。毎年で2月30日のような日付を指定した場合は、実行日時の欄に「実行されません」と表示されます
  • 項目が空のときや範囲の外の数値のときは、どの項目が原因かを表示し、入力欄の式は変えません
  • 選んだ条件は入力欄に書き込まれるだけです。入力欄を直接書き換えるか「入力例」を押すと、頻度の選択は外れます。入力欄の式から項目へ読み戻すことはしません
  • 選べるのは上の7つの形だけです。「平日の9〜17時台に15分ごと」のような組み合わせは、近い形を作ってから入力欄で書き換えてください
  • 時刻はタイムゾーンを持ちません。ジョブが動くタイムゾーンでの時刻を指定してください

書式のルール

cron式は、空白で区切った5つのフィールドを左から順に書きます。

  • 分: 0〜59
  • 時: 0〜23
  • 日: 1〜31
  • 月: 1〜12、または JAN〜DEC
  • 曜日: 0〜7(0と7が日曜日)、または SUN〜SAT

各フィールドでは次の書き方が使えます。

  • *: すべての値
  • 5: その値だけ
  • 1-5: 1から5までの範囲
  • 1,15: 1と15(カンマで並べる)
  • */10: 最小値から10おき(分なら0、10、20、30、40、50)
  • 10-30/5: 10から30までを5おき(10、15、20、25、30)

月と曜日の英語名は大文字でも小文字でも読み取ります。

次の短縮形も使えます。

  • @hourly: 0 * * * *(毎時0分)
  • @daily、@midnight: 0 0 * * *(毎日0時)
  • @weekly: 0 0 * * 0(毎週日曜日の0時)
  • @monthly: 0 0 1 * *(毎月1日の0時)
  • @yearly、@annually: 0 0 1 1 *(毎年1月1日の0時)

日と曜日を両方指定したとき

日と曜日の両方に * 以外を書くと、cronは「どちらかに当てはまる日」に実行します。両方を満たす日だけではありません。

  • 0 0 1 * 1: 毎月1日と、毎週月曜日の両方で実行します(「1日が月曜日のときだけ」ではありません)
  • 0 0 13 * 5: 毎月13日と、毎週金曜日に実行します。「13日の金曜日」だけにはなりません

ただし、どちらかのフィールドが * で始まっている場合(*/2 など)は、両方に当てはまる日だけ実行します。0 0 */2 * 1 は、奇数日に当たる月曜日だけです。これはLinuxで広く使われているcron(Vixie cron、cronie)の動作に合わせています。

FAQ

*/7 は7分ごとに実行されますか?

いいえ。*/7 は「0分から7おき」で、0、7、14、…、56分に実行します。56分の次は翌時の0分なので、そこだけ4分間隔になります。間隔が毎時リセットされるため、60を割り切れない数では等間隔になりません。時の */5 なども同じで、0、5、10、15、20時の次は翌日の0時です。

実行日時はどのタイムゾーンで計算されますか?

「この端末の時刻」を選ぶと、お使いの端末に設定されたタイムゾーンで計算します。「UTC」を選ぶとUTCで計算します。

cron式そのものはタイムゾーンを持たないので、ジョブが実際に動くタイムゾーンに合わせて選んでください。特に指定がなければ、cronはサーバーのタイムゾーンで実行します。crontabに CRON_TZ=Asia/Tokyo のような指定がある場合は、サーバーではなくその指定のタイムゾーンで実行されます。GitHub Actionsの schedule は、既定ではUTCです。

ジョブのタイムゾーンが、お使いの端末ともUTCとも違う場合、このツールでは実行日時を確認できません。

夏時間はどう扱われますか?

「この端末の時刻」で計算するとき、切り替えの前後は次のように扱います。

  • 夏時間の終了で同じ時刻が2回ある場合: 分か時が * で始まる式(* * * * * や */10 * * * * など)は2回とも一覧に出します。30 1 * * * のように時刻を固定した式は、最初の1回だけを出します
  • 夏時間の開始で時計が飛ばす時刻(たとえば2時30分が存在しない日): 一覧に出しません

当てはまる日時がどれも飛ばされる時刻に当たる式(ニューヨークでの 30 2 8-14 3 */7 など)は、実行日時を出せないので、その旨を表示します。

終了時の扱いはcronieに合わせています。開始時については、cronieは飛ばされた時刻の固定ジョブを切り替えの直後に実行しますが、このツールはそれを再現しません。こうした時刻の扱いはcronの実装によって違うので、夏時間のある地域で正確さが必要な場合は、ジョブをUTCで動かすのが確実です。端末のタイムゾーンに夏時間があるときは、実行日時の下に注意書きを表示します。日本には夏時間がないため影響しません。

秒や年を含む6つ以上のフィールドには対応していますか?

いいえ。標準のcrontabと同じ5フィールドだけに対応しています。QuartzやSpringの秒つきの書式、AWS EventBridgeの年つきの書式、? L W # といった拡張記号は読み取りません。入力するとエラーとして表示します。

5/15 のように、1つの値に間隔をつけられますか?

エラーにします。5/15 を「5から15おき」と読むcronもありますが、Linuxで広く使われているVixie cronとcronieはこの書き方を受け付けません。どのcronでも同じ意味になるよう、5-59/15 のように範囲で書いてください。エラーメッセージに、書き直した形を表示します。

cron式を書かずに作れますか?

「条件を選んで式を作る」で、数分ごと・毎時・数時間ごと・毎日・毎週・毎月・毎年のいずれかを選ぶと、式が入力欄に入り、意味と実行日時もその場で表示されます。「式をコピー」で入力欄の式をコピーできます。実行するコマンドは含まれないので、crontabに書くときは後ろに続けてください。

crontabの行をそのまま貼り付けられますか?

実行するコマンドがついた行(0 5 * * * /usr/bin/backup.sh など)は読み取れません。先頭の5フィールドだけを入力してください。

22-5 のように日をまたぐ範囲は書けますか?

書けません。開始が終了より大きい範囲は多くのcronでエラーになるため、このツールでもエラーにします。22時から翌5時までなら 22-23,0-5 と書きます。

2月30日のような存在しない日付を指定するとどうなりますか?

0 0 30 2 * のように当てはまる日付がない式は、式としては正しいので意味は表示しますが、実行日時の欄に「実行されません」と表示します。0 0 31 * * は31日のある月だけ、0 0 29 2 * はうるう年だけ実行されます。

@reboot は使えますか?

@reboot はcronの起動時に1回だけ実行する指定で、日時を持たないため、このツールでは計算できません。

入力した式は保存されますか?

いいえ。すべてブラウザ内で処理し、どこにも送信しません。ページを再読み込みすると消えます。

種別
ユーティリティ
カテゴリ
開発者向け
タグ
cron
crontab
generator
schedule
time
developer
  • UUID・ULID生成ツール

    UUID v4 と、時刻順に並ぶ UUID v7・ULID をまとめて生成。ボタンひとつで最大100件を作成し、UUIDは大文字・ハイフンなし・波かっこ付きの形式に切り替えてコピーできます。貼り付けたUUID・ULIDのバージョンと作成時刻を調べ、ULIDとUUIDの書き方を相互に変換することもできます。

    ユーティリティ開発者向けuuidguiduuidv4uuidv7ulidgeneratordecodertimestampdeveloperid
  • カレンダー予定作成ツール(ICSファイル・Googleカレンダー追加リンク)

    予定名・日時・場所から、iPhone・Mac・Outlook・Googleカレンダーに読み込める .ics ファイルと、Googleカレンダー・Outlookに追加するリンクを作成。終日・繰り返し(毎週の曜日・第○曜日・回数・終了日)・通知・タイムゾーンに対応します。

    ユーティリティ開発者向けicsicalendarcalendargoogle-calendaroutlookeventgeneratorschedule
  • metaタグ・OGP生成ツール(title・description・Xカード)

    タイトル・説明文・URL・画像から、head に貼る title・description・canonical・OGP・X(旧Twitter)カードのタグを作成。Google検索とSNSの表示の目安、文字数、相対パスの画像URLや画像の大きさの問題も確かめられます。

    ユーティリティ開発者向けmetaogpopen-graphtwitter-cardseohtmlgeneratordeveloper