tohokuaikiのチラシの裏

技術的ネタとか。

Confluenceのタスクスケジューリング設定における時刻の指定について

管理画面から行う自動バックアップとかのタスクのスケジューリング設定。
Scheduled Jobs - Confluence Latest - Atlassian Documentation

crontabによく似ているのですが、秒の指定ができたりとちょっと違う。

管理画面の編集でライブチェックができる

時刻設定を変更すると、直近で行われる10件の時刻がサンプルとして表示される。Invalidな設定にするとエラーメッセージがでるのでわかりやすい。
f:id:tohokuaiki:20150619101201p:plain

シンタックス

こんな感じ。

*  *  *  *  *  *  *  
-  -  -  -  -  -  - 
|  |  |  |  |  |  |
|  |  |  |  |  |  +------- 年
|  |  |  |  |  +-------- 曜日
|  |  |  |  +--------- 月
|  |  |  +---------- 日
|  |  +----------- 時
|  +----------- 分
+----------- 秒

crontabと同じで、

  1. カンマ区切りで複数指定
  2. */2とかで2の倍数指定(若干違うけど・・・・まぁだいたい)
  3. 1-4とかで1~4の範囲指定

ができる。

?指定

注意するところが、?の存在。これは、7つ指定しないといけないこのシンタックスで「無視する」という条件になる。無視するなら*で良いじゃんと思ったのだけど、?を使う。

これは、日付の指定において「日付指定か曜日指定」の際に必要になる。つまり、

  • 曜日を指定 ・・・ 日付を?にする
  • 日付を指定 ・・・ 曜日を?にする

というルールが必須になる。

例えば、下記は毎日0時に実行するということで、

0 0 0 * * ? *

下記は毎週日曜日の0時に実行するということになる。

0 0 0 ? * 1 *

曜日か日付かのどちらかを?にする必要がある。

省略可能

年だけは指定しなくてもよい。6つでOK。

曜日指定はSUNとかの文字表記でもOK

1・・・日曜日、2・・・月曜日なんだけど、SUN、MONでも大丈夫。