N分ごとにCronジョブとオフセットを実行


251

*/20 * * * *

20分ごとに実行されることを確認します。1時間の5時に開始して、20分ごとにタスクを実行したいのですが、これはCronで可能ですか?それは:

5/20 * * * *


10
おかげで私たちの時間システムが正確に1,2,3,4,5および6で割っする必要があると判断したバビロニア人、
arivero

3
2と3で割り切れる場合は、6で割り切れる
Ziofil

回答:


514

1時間の5時に開始して20分ごとにタスクを実行するには、次のことを試してください。

 5-59/20 * * * *

説明

*分のフィールドのinは、0-59/1where 0-59rangeと同じ1で、stepです。コマンドは、範囲(0)の最初の分に実行され、次にステップ(1)によって最初から離れた最後の分(59)までのすべての連続した分に実行されます。

これが*/20 * * * *0分、20分後、40分後に実行される理由です。これは20分ごとと同じです。ただし、*/25 * * * *は0分、25分後、および50分後に実行されます。これは、25分ごととは異なります。そのため、60に等分する分フィールドでステップ値を使用することが通常望ましいです。

したがって、開始時間をオフセットするには、範囲を明示的に指定し、最初の値をオフセットの量に設定します。

5-59/20 * * * * 5分後、25分後、45分後に実行されます。

10-59/25 * * * * 10分後と35分後に実行されます。

1-59/2 * * * * 奇数分ごとに実行されます。


3
それは完璧に動作します。どのようにしてそれを見つけましたか?私をドキュメントに向けることができますか?ありがとう。
AJP 2013年

12
さまざまなGoogle検索で、このサーバー障害の答えが見つかりました。特に他の結果が分のモジュラスステップがゼロに等しいことを示唆していたので、それは私を本当に混乱させた間違いがありました。ようやくこのマニュアルページが見つかりました。その結果、現在修正されているサーバー障害の回答についてコメントすることができました。IBMページの検索に使用した実際の検索語句を覚えていません。
toxalot 2013年

3
ありがとうございました。@ toxalotのおかげで、「Tireless Investigator」バッジを授与できれば幸いです。:P
AJP 2013年

5
笑。私は10分ごとにジョブを実行する必要があり(5オフセット)、コンマ区切りのリストを使用したくなかったので、答えを見つけることにしました。
toxalot

2
CPanelは残念ながらこれを好きではないようです:(
Robert Went

53

承知しました!

5,25,45 * * * * /your/cron

2
ありがとう。私はこれをやった結果、もっとエレガントな解決策があるかもしれないと思っていました。
AJP 2013

13
読みやすく、理解しやすいため、シンプルなソリューションの方が良い場合があります。私5-59/20はそれが可能であることを知っているのが好きですが、それ5,25,45が何をするのかすぐに非常に明確であるという利点があります。
thomasrutter 2016年

2
ステップが十分に大きい場合のみ
テベ

3
これははるかに良い例です。ジョブがいつ始まるかを理解するには、認知的負荷はかかりません。
ディランピアス

11

あなたが試すことができます: */5 * * * * sleep N; your job


4
これには何の問題もありません。実際、これはcertbotのcronジョブがランダムなオフセットを達成してサーバーの負荷分散を維持する方法と非常に似ています。確かにこれらすべての投票に値するわけではありません
ビリーノア

6
これにより、ランダムな秒数でスリープする方法を知りました。 sleep `shuf -i 1-100 -n 1`トリックを行います。
Laizer

くそー、@ Laizerあなたは私にもう一度何かを学ばせました!(ありがとう!)
UncaAlby
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.