毎日0時のcron
0 0 * * *。サーバー自身のタイムゾーンの0時です。
例を読み込むと入力と設定が一時的に変わります。元の内容に戻せます。
0文字
- cron
- • • • • •
出力
• • • • •
•••••••••• •••••••
• •••••••• •••••••
• • •••••• •••••••
• • • •••• •••••••
• • • • •• ••••••••••••••••••••••••
• • • • •
••••••••••
• •
• •
• •••
• •••
•• •••
••••••••••••••••••••• •••••
•••••••••• ••••• •
•••••••••• ••••• •
•••••••••• ••••• •
•••••••••• ••••• •
•••••••••• ••••• •ファイルは端末の外に出ません
このツールはすべてブラウザ内で動作します。貼り付けた内容は端末内で処理され、サーバーには送信されないため、トークンや鍵、未公開の文章でも安心して使えます。
使用例
例:日本時間の0時に日次集計を動かす — JSTのサーバーとUTCのサーバーで式が変わる
ネットショップの売上を1日1回、日本時間の0時に集計するバッチ。このページの 0 0 * * * は「サーバーの時計で0時」なので、日本時間に設定したサーバーならそのまま、UTCのままのクラウドやコンテナでは日本時間の朝9時に動きます。メニューを「下の入力欄で指定する」にして英語で書いた時刻と、組み立てられた式を並べました。
- 0 0 * * * を左から読むと、0分・0時・毎日・毎月・毎曜日です。
- 日本時間はUTCより9時間進んでいて、サマータイムもありません。UTCのサーバーでは日本時間から9時間引いた時刻を書きます。日本時間0時はUTCの前日15時なので 0 15 * * *、入力欄に every day at 3pm と書くと出る式です。
- 下に出る「次の5回の実行」は、このページを開いた端末のタイムゾーン(日本のパソコンならAsia/Tokyo)での時刻です。サーバーの時刻ではありません。
| 日本時間で動かしたい時刻 | 入力欄に書く英語 | 日本時間のサーバー | UTCのサーバー |
|---|---|---|---|
| 0:00 | every day at midnight | 0 0 * * * | 0 15 * * * |
| 0:30 | at 0:30 every day | 30 0 * * * | 30 15 * * * |
| 3:00 | every day at 3am | 0 3 * * * | 0 18 * * * |
| 9:00 | every day at 9am | 0 9 * * * | 0 0 * * * |
| 18:00 | every day at 6pm | 0 18 * * * | 0 9 * * * |
| 0:00と12:00 | every day at midnight and noon | 0 0,12 * * * | 0 3,15 * * * |
集計バッチの式は、日本時間のサーバーなら 0 0 * * *、UTCのサーバーなら 0 15 * * * です。スケジューラーでタイムゾーンを指定できるなら、Asia/Tokyo を指定して 0 0 * * * のままにするほうが、あとから読む人が間違えません。0時は日本ではサマータイムの切り替えもないので、飛ばされたり2回動いたりしません。
使い方
- 式はすでに出ています:0 0 * * *。下に並ぶ5つのフィールドは、左から 分・時・日・月・曜日 です。
- crontab、CIのスケジュール、クラウドのスケジューラにそのまま貼れます。5つのフィールドの意味はどれでも同じです。
- 変えたいときはメニューを「下の入力欄で指定する」に切り替え、スケジュールを英語で書いてください。「every 2 hours」「at 5pm on weekdays」のように書けば、組み立てて読み返します。日本語の文はまだ読めません(読み返しの説明は日本語で出ます)。
- 確認すべきは式ではなく読み返しのほうです。下に出る説明は組み立てた式を解析した結果なので、こちらの意図ではなく機械の解釈が出ます。
よくある質問
- どこの0時ですか?
- 実行するマシンのタイムゾーンの0時です。サーバーやコンテナの多くはUTCで、手元の時刻ではありません。現地の0時に動かしたいなら、式ではなくスケジューラ側でタイムゾーンを設定してください。cronにそのフィールドはありません。
- GitHub Actions や Kubernetes、クラウドのスケジューラでも同じですか?
- 5つのフィールドは同じです。違うのはその周りで、@daily のような名前を受け付けるものもあれば、Kubernetes の CronJob は同じ5フィールド、GitHub Actions は混雑時にスケジュール実行が遅れます。式はそのまま貼れますが、時間どおりに動く前提は置かないでください。
- すでにある式を読み解きたいのですが。
- cron式の解析ページがあります。式を貼ると、次に動く日時の一覧と、各フィールドが許す値を表示します。他人が書いた式を信用する前にやっておく価値のある確認です。
- 曜日を指定した式をUTCのサーバー用に直すときの注意は?
- 日本時間の0:00〜8:59は、UTCでは前日です。時刻だけでなく曜日も1つ前にずらします。日本時間の平日0時(0 0 * * 1-5)はUTCでは日曜〜木曜の15時で、0 15 * * 0-4 になります。入力欄に every sunday to thursday at 3pm と書くとこの式が出ます。
- 「次の5回の実行」の時刻が、サーバーで動いた時刻と合いません。
- 一覧は、このページを開いている端末のタイムゾーンで計算しています。cronはサーバーのタイムゾーンで動くので、日本のパソコンで見た一覧とUTCのサーバーの実行時刻は9時間ずれます。一覧の見出しにタイムゾーン名(Asia/Tokyoなど)が出ているので、サーバーの設定と見比べてください。
- どこかに送信されますか?
- されません。式の組み立ても読み返しもブラウザの中で行われ、アップロードはありません。無料、アカウント不要です。