cronは「頻繁に」ジョブの残りをどのように処理しますか


13

これを行う場合:

*/9 * * * * /path/to/wotnot

タスクは09h00から2時間で実行されます

A:

09h00
09h09
09h18
09h27
09h36
09h45
09h54
10h03
10h12
10h21
10h30
10h39
10h48
10h57

またはB:

09h00
09h09
09h18
09h27
09h36
09h45
09h54
10h00
10h09
10h18
10h27
10h36
10h45
10h54

回答:


31

範囲を見るときは、その列内でのみ解釈します。したがって、分列内の「* / 9」は「毎分リストし、9番目ごとの値を選択する」ことを意味します。この選択は時間の先頭にリセットされるため、毎時間xx:00、xx:09、xx:18などに再起動します。

また、「毎時9分ごと」と読むこともできます。これは、毎時のリセットを意味します。

したがって、表示される実際の動作はオプションBに対応します。


これが実際に質問に答えていると思われる唯一の答えです。確認するためにこれを試しましたか?
グレント

過去10分以内に?いいえ。過去3か月以内に?はい。ただし、特に9分間隔ではありません。
ジョン

私があなたがしたときだけ気にする理由がわかりません。ありがとうございました。
グレント

1
私は以前の同僚に「あなたはそれをテストしなかった、あなたはあなたの不完全な記憶に頼っている!」について腹を立てさせた。同様の状況で(もちろん、5分後に、それがまだ機能していることを証明した後、彼らはいらいらして立ち去ります)、事前にそれに対するヘッジの習慣を形成しました。
ジョン

2
テストの最初のステップは、顧客(この場合はJesse)と同じブランドとバージョンを使用していることを確認することです。これまでのところ、彼が使用しているcronについての手がかりはありません。(おそらくVixie Cronであり、この基本機能はそのプログラムのバージョン全体で安定している可能性があります。)
Kaz

22

ジョンの答えを確認するため*/nに、分列の「分が0 mod nのとき」を意味します。ここにあるcrontabエントリは:

*/7 * * * *  date >> /tmp/foo

出力は次のとおりです。

Thu Jan 10 14:49:01 GMT 2013
Thu Jan 10 14:56:01 GMT 2013
Thu Jan 10 15:07:01 GMT 2013

nn:56の後の次回の一致は `nn + 1:07 であるため、最後の2回の間隔 7分ではないことに注意してください*/7

はい、私はそれらの時代が将来であることを知っています(または、私はこれを投稿したときでした)。迅速な回答を得るには、システムクロックをかなり速く駆動する必要がありました。


5
努力のための+1 :)
スヴェン
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.