Linuxで指定コマンドを定期的に実行するcronを調整できるcrontab。
で、細かいスケジュールの設定をしたのでメモ。
まずは概要を。
[cc lang=’text’ line_numbers=’false’]
分 時 日 月 曜日 [実行するコマンド]
[/cc]
各フィールドはこんな感じで並んでます。
それぞれに指定出来る数値は以下。
- 分 0 〜 59
- 時 0 〜 23
- 日 1 〜 31
- 月 1 〜 12
- 曜日 0 〜 6
特に限定せず全てのタイミングで実行する時はワイルドカード( * )で
[cc lang=’text’ line_numbers=’false’]
* * * * * [コマンド]
[/cc]
だと [コマンド] が 毎分 毎時 毎日 毎月 全曜日 で実行されてまうってことですな。
[cc lang=’text’ line_numbers=’false’]
30 12 * * * [コマンド]
[/cc]
だと [コマンド] が毎日 12時30分 に実行されると。
普通に使う分にはこれで十分便利やけど実行して欲しくない時間帯や曜日が出てくるもんで。
そんな時にも crontab はばっちり対応。
・リスト指定
9,10,14,17
「,」カンマで区切ると指定したタイミングで実行。
[cc lang=’text’ line_numbers=’false’]
30 9,10,14,17 * * * [コマンド]
[/cc]
だと [コマンド] が 9時30分 10時30分 14時30分 17時30分 で実行する指定に。
・範囲指定
9-17
「-」ハイフンで範囲を指定出来ます。
[cc lang=’text’ line_numbers=’false’]
30 9-17 * * * [コマンド]
[/cc]
だと [コマンド] が9時〜17時の毎時30分に実行される指定に。
・一定値ごとの間隔を指定
9-17/2
「/」スラッシュで間隔を指定可。
[cc lang=’text’ line_numbers=’false’]
30 9-17/2 * * * [コマンド]
[/cc]
だと 9時〜17時 のうち2時間間隔で30分に実行となるので9時30分 11時30分 13時30分 15時30分 17時30分 に実行指定に。
こんな感じで結構細かく指定出来るもんで。
がっつり指定した例を挙げると
[cc lang=’text’ line_numbers=’false’]
30 0-7/4,9-19/3 1-29 */2 0-5 [コマンド]
[/cc]
- 2ヶ月おきの 1月 3月 5月 7月 9月 11月
- 1日から29日の範囲で 毎週 月曜日〜金曜日
- 0時〜7時の4時間おきの 0時30分 4時30分
- 9時〜17時の3時間おきの 9時30分 12時30分 15時30分 18時30分
に実行すると。
便利なもんですなー
自分でやっててこんがらがってきたけど。