概要
GCP
やFirebase
でスケジューラ関数を定義する場面で、cron(クーロン)形式の時間指定に出くわしたのでまとめました。
GUIですべて指定できればいいのですが、パターンが多すぎるのでcron形式で指定したほうが開発側も利用者側も手間が省けるのでしょうか
この記事は、以下の記事を抜粋したものです。
詳しく知りたい方は、こちらも併せて参照してください。
以下のサイトは、cronの書式チェッカーです。
ルール
書式
cronの時間指定は、5つのパラメーターによって定義します。
分 時 日 月 曜日
* * * * *
それぞれ値が取る範囲は、以下のようになっています。
項目 | 数値 |
---|---|
分 | 0-59 |
時 | 0-23 |
日 | 1-31 |
月 | 1-12 |
曜日 | 0-7(0,7=日, 1=月...) |
省略値(*)
*
を指定した場合、各項目で設定できる全ての値を設定したことになります。
例えば、以下のようになります。
毎分実行する
* * * * *
0時の間、毎分実行する
* 0 * * *
毎時、10分に実行する
10 * * * *
リスト・範囲・間隔の指定方法
指定方法 | 設定例 | 説明 |
---|---|---|
リスト | 0,10,20,30 | 「,」で区切ることで複数指定が可能 |
範囲 | 1-5 | 「-」で範囲指定が可能 |
間隔 | */10 | 「*/数値」で間隔を設定することが可能 |
例えば、以下のようになります。
毎時、0分、10分、20分、30分に実行する
0,10,20,30 * * * *
毎月、15日、30日の0時0分に実行する
0 0 15,30 * *
毎時、0~10分の間1分ごとに実行する
0-10 * * * *
毎時、10分ごとに実行する
*/10 * * * *
隔月の1日0時0分に実行する
0 0 1 */2 *
実例
毎時15分
15 * * * *
毎日AM 4:02
2 4 * * *
毎月10日のAM 6:15
15 6 10 * *
7月1日 AM 3:00
0 3 1 7 *
7月1日 AM 3:00
0 3 1 7 *
###毎週月曜日のAM 10:00
0 10 * * 1
###毎日AM 4:30とAM 9:30
30 4,9 * * *
###毎週月、金曜日のAM 3:00
0 3 * * 1,5
###毎日AM 3:00 4:00 5:00 6:00 7:00 9:00
0 3-9 * * *
###毎月10日のAM 3:15 4:15 5:15 6:15
15 3-6 10 * *
###10分ごと
*/10 * * * *
###3時間ごと
0 */3 * * *
###AM 1:00 6:00 9:00 10:00 11:00
0 1,6,9-11 * * *