他の日曜日に毎週日曜日にcronを実行するにはどうすればよいですか?


10

私は0 0 * * 0/2-つまり隔日曜日に実行するcronジョブを持っています。たとえば、今すぐ実行されました。ただし、この日ではなく、他の日曜日(次の日曜日)に実行する必要があります。別の言い方をすると、私はそれがその年の偶数番号の日曜日に実行されると思いますが、私は奇数番号の日曜日に実行されることを望みます。

「man 5 crontab」にこれを助けるものは何も見当たらないので、0 0 * * 0でのcronjobの実行に戻って実行するコマンドで何かを実行して、どの日曜日かを確認する必要があると思いますです。誰かがこれに適したコマンドラインのトリックを手伝ってくれる?

ETA:私の0/2が最初に思った(毎週第2日曜日)とまったく同じことをしないことに気づきました。曜日が2で割り切れる限り、毎週日曜日に実行されます。ドー。とにかく、基本的な要件は残っています。奇数の日曜日にコマンドを実行します。


「第1、第3、第5日曜日」のように「奇数」?
voretaq7 2013

1
いいえ、年の第1、3、5、7、... 49、51週目と同様です。つまり、隔週で、その年の奇数週に該当する日曜日です。
Skud 2013

申し訳ありません-cronはそれを行いません。今週があなたにとって正しい週であるかどうかをスクリプトに確認させる必要があります。(また、特定の場所から私を覚えている場合-HI !!!
ジェニーD

回答:


3

私はこの特定のタスクを自分で試みたふりをしませんが、このスタックオーバーフローの質問には、潜在的なコマンドラインのトリックを示すいくつかの回答があります:https : //stackoverflow.com/questions/350047/how-to-instruct-cron-to-毎週ジョブを実行する


それらのどれも、奇数番号の週にcronを実行しません。彼らはすべて他のすべてを行います。一部は非常にエキゾチックで「クリエイティブ」な方法であり、私もお勧めしません。
クリスS

上位投票の回答は毎週実行されるように見え、適切な週であるかどうかを判断するためにコマンドライントリックに依存します。
nmjk 2013

1
はい、ただし2を法とするので、偶数週に実行されます。複数のevalブロックをスタックして1を追加し、次に2を法として実行することは可能かもしれません。これはせいぜい醜いですが、うまくいくかもしれません。
クリスS

1
リンクされた回答から、これは可能性があるように見えます: date +\%W\%2> / dev / null || 何でも...しかし、奇数週を取得するには、||の代わりに "&&何でも"を実行したいと思います。
Skud 2013

1
ですから、説明を求めます。あなたは、週ごとに数えたり、週ごとに数えたりする「奇数週ごと」のカウントを決定したいですか?後者が可能であると確信していますが、過去に使用したいくつかの古いスニペットを見つける必要があります。
nmjk 2013
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.