Linuxのcron機能で、5分ごとにスクリプトを実行したい場合は、大抵の環境で下記の指定が可能です。
*/5 * * * *
ただ、上記の場合だと、開始が0分になります。
開始が0分からではなく、m分のオフセットを掛けたのち、n分おきに実行したい場合(*/n+m)の方法を説明します。
例として、1,6,11,16,...分に実行させる場合の指定方法を説明します。
cronでm分オフセット後、一定周期に処理を実行する
どの環境でも設定できる方法は、以下のように列挙するのが確実です。
1,6,11,16,21,26,31,36,41,46,51,56 * * * *
Linuxディストリビューションによっては、下記の定義が認められている場合があります。
これは、何のcronプログラムがインストールされているかに依存します。
1-59/5 * * * *
また、下記のパターンがOkな場合もあります。
*/5+1 * * * *
上記のどのパターンでもNGな場合
どうしてもcronの設定でn分のオフセットを掛けられない場合は、実行された側のスクリプトで対応するのも選択肢の一つです。
(crontabの定義と、実際の振る舞いが異なり、分かりづらいのでお勧めはしませんが...)
具体的には、下記のパターンが考えられます。
- 実行されるスクリプト側でsleep 60する。
- 毎分実行して、実行されたスクリプトで現在時刻をチェックする。
こちらもおススメ