cron式作成
繰り返し条件からcron式を作り、次の実行時刻8回分を確認します。
ツールを準備しています。
ユーザーの評価
まだレビューはありません。このツールを使ったことがあれば、最初のレビューを書いてください。
cron式作成の詳しい使い方ガイド
使い方と例を確認し、知りたいことはトピックから探せます。
はじめに確認すること
- 扱う形式
- 標準の5つの欄:分 時 日 月 曜日。
- 使える表記
- *、数字、1-5の範囲、1,3,5のリスト、*/15の間隔指定、JAN・MONのような名前。
- 日・曜日のルール
- 両方が指定されている場合は、どちらか一方に合えば実行します(標準のcron)。
- 実行時刻
- 今後の8回を実際に計算して、曜日と一緒に表示します。
- 探す期間
- 今から5年以内で探します。
- タイムゾーン
- このブラウザのタイムゾーンで計算し、画面に表示します。
- 事前に防ぐもの
- 2月30日のように存在しえない日付の組み合わせ。
- 対応していないもの
- 秒単位の6つの欄、@dailyなどのエイリアス、L・W・#のような拡張構文。
cron式作成の使い方
式を書くか、選ぶ
直接書いても、よく使う式から選んで書き換えてもかまいません。5つの欄がそれぞれ何かを、値と一緒に下に表示します。
人の言葉による説明を見る
式が正しければ、どんな条件かを日本語で説明します。間違った式なら、どの欄がなぜ間違っているかを指摘します。
次の実行時刻で検証する
いちばん確実な確認方法です。今後8回の実行時刻を曜日と一緒に表示するので、平日だけ動くのか、月末はどうなるのかを、目で確認できます。
式をコピーして使う
確認が終わったら、式や実行時刻の一覧をコピーして持ち帰ってください。サーバーのタイムゾーンが違うと、実際の実行時刻が変わるという点だけ、覚えておいてください。
こんな作業に使えます
説明ではなく、実際の時刻で確認します
人の言葉による説明は役に立ちますが、紛らわしい式では、説明だけでは足りません。このツールは式を実際に計算し、今後8回の実行がいつかを、曜日と一緒に表示します。平日だけ動くのか、月末にスキップされるのか、うるう年の2月29日がいつ来るのかを、目で見てすぐに確認できます。
日と曜日が両方あるときの扱いを、そのまま反映します
cronで最も間違いやすいところです。「0 0 1 * 1」は、1日かつ月曜日ではなく、1日または月曜日に実行します。標準のcronは、この2つの欄だけをORでつなぐためです。このツールはそのルールをそのまま計算するので、実際のサーバーと同じ結果を表示します。
例で結果を確かめる
平日の午前9時
0 9 * * 1-5月曜日、火曜日、水曜日、木曜日、金曜日の9時0分
次の実行:3月16日 午前9:00(月)1日または月曜日
0 0 1 * 11日または月曜日の0時0分5つの欄が表すもの
表を左右にスクロールすると続きが見られます。
| 欄 | 値 | 例 |
|---|---|---|
| 分 | 0-59 | */15 → 0、15、30、45分 |
| 時 | 0-23 | 9-18 → 午前9時から午後6時 |
| 日 | 1-31 | 1 → 毎月1日 |
| 月 | 1-12またはJAN-DEC | 1,7 → 1月と7月 |
| 曜日 | 0-6(0=日曜日)またはSUN-SAT | 1-5 → 平日 |
結果が思ったとおりにならないとき
サーバーでは違う時刻に動きます
タイムゾーンの違いです。ここでは、このブラウザのタイムゾーンで計算します。サーバーがUTCなら、日本・韓国の時間とは9時間の差が出ます。
@dailyが使えません
エイリアスは扱いません。@dailyは「0 0 * * *」、@hourlyは「0 * * * *」と書いてください。
実行時刻がひとつも表示されません
今後5年以内に当てはまるときがない条件です。2月29日のようにまれな条件か、月と日が互いに合っていないかを確認してみてください。
曜日に7を書きました
7は日曜日として読みます。0と同じ扱いなので、そのまま使って大丈夫です。
知っておきたい用語
- cron
- 決まった時刻にコマンドを実行する、スケジュール機能です。
- crontab
- cronの式と、実行するコマンドを書いておくファイルです。
- */n
- nごとに1回という意味です。*/15は15分ごとです。
- UTC
- 協定世界時です。韓国時間はUTCより9時間進んでいます。
cron式作成のよくある質問
実行時刻がサーバーと違うことはありますか?
あります。ここでは、このブラウザのタイムゾーンで計算します。サーバーのcronはサーバーのタイムゾーンに従うため、デプロイ環境のタイムゾーンが違うと、実際の実行時刻も変わります。画面に、今使っているタイムゾーンも表示します。
@dailyのような表記にも対応していますか?
対応していません。標準の5つの欄だけを扱います。@dailyは「0 0 * * *」と書いてください。秒単位を使う6つの欄や、L・W・#のような拡張構文にも対応していません。
間違った式はどう知らせてくれますか?
どの欄がなぜ間違っているかを指摘します。範囲外の数字、逆向きの範囲、2月30日のように存在しえない日付を、それぞれ区別してお知らせします。
秒単位で動かせますか?
このツールは、分単位の5つの欄だけを扱います。秒を使う6つの欄の方式は、一部のプログラムでしか使われておらず、ここでは対応していません。
説明と実行時刻が違うように感じます
実行時刻のほうが正確です。説明は読みやすく言い換えたものなので、複雑な条件では、ひとまとめにされることがあります。判断は、実行時刻の一覧でするほうが確実です。
何回まで表示しますか?
今後8回を表示します。「現在の時刻で再計算」を押すと、基準時刻を新しく合わせ直します。


