web-dev-qa-db-ja.com

crontabで「すべての奇数値」を指定しますか?

Crontabでは、アスタリスクを使用してすべての値を意味するか、「*/2」を使用してすべての偶数値を意味します。

すべてのodd値を指定する方法はありますか? (「1 + */2」のようなものは動作しますか?)

61
levik

Cronのバージョンに応じて、次のことができるはずです(たとえば、何時間も):

   1-23/2

Crontab(5)マンページのEXTENSIONSセクションをご覧ください:

   Ranges can include "steps", so "1-9/2" is the same as "1,3,5,7,9".

より移植性の高いソリューションを得るには、単純なリストを使用するだけでよいと思われます。

   1,3,5,7,9,11,13,15,17,19,21,23

しかし、コマンドを奇数分で呼び出されない場合はすぐに終了するシェルスクリプトでラップする方が簡単かもしれません。

89
zigdon

奇数分ごとに:

1-59/2 * * * * 

偶数分ごとに:

0-58/2 * * * * 
57
grigb

試して

1-23/2

あなたの質問から、私はVixie Cronを仮定しています。これが他のcronで機能するとは思えません。

2
Paul Tomblin

マニュアルを読むと、「1-23/2」(数時間)でうまくいくでしょう。

2
erlando

5分間隔でもCronieで動作します。

3-58/5 * * * * /home/test/bin/do_some_thing_every_five_minute
0
Tomas Jensen

私はこれがほぼ10歳であることを知っていますが、2時間ごと、奇数時間の仕事で1-23/2を得るのに苦労していました。

exact奇数時間の精度は必要ないすべてのユーザーにとって。チームのニーズに合った次のことを行いました。

59 */2 * * *

59分に2時間ごとにジョブを実行します。

0
pbjolsby