この2つの複雑なcronステートメントの形式をどのように指定しますか?

この2つの複雑なcronステートメントの形式をどのように指定しますか?

非常に具体的な2つのcron文が必要です。

  1. 毎月第2月曜日の02:00から4時間ごとに実行され、/opt/bin/cleanup.shファイルを実行するcronエントリ。

  2. 毎月3日18:15に実行されるcronエントリで、「r」で終わり、/opt/bin/verrrrrrrry.shを実行します。

私は様々なクローンテスターを試してみました。

スケジュールされたジョブチェッカー計画された作業テスター、そしてスケジュールされた作業翻訳者

しかし、上記のように、これらのどれも高度なcron式を処理できないようです(または正しい式の形式を指定する方法がわかりません)。

クローントリガーチュートリアルそして ウィキペディア

私のcronステートメントをどのように確認できますか?デーモンがイベントを実行できるように、実際のイベントが完了するのを待つことはできません。

高度な式をサポートする良いクローンテスターはありますか?それとも、cronデーモンに式を解析させるか、これらの式をどのようにエンコードしますか?

この声明について私が今まで理解してきたのは次のとおりです。

  1. 0 2 * * 0#2 /opt/bin/cleanup.sh
  2. 15 18 3 * * /opt/bin/verrrrrrrry.sh

しかし、もちろん、これらのどれも正確ではありません。

#1の場合、「2番目の月曜日」を指定する方法や02:00に始まり、「4時間ごと」を指定する方法がわかりません。

#2の場合、手動でコーディングせずに「r」で終わる月だけを指定する方法がわかりません。 3日目をどのように指定するのかわかりません。

答え1

毎月2番目の月曜日にのみタスクを実行するには、曜日の値が1でなければならず、日付の値は8〜14でなければならず、時間は2、6、10、14、18、22でなければなりません。そして分0. しかし、dhagが正しく説明し、解決策を提供したように曜日と月を指定すると(そうでない*)、どちらかが一致したときにプログラムが実行されます。したがって、どちらかを明示的にテストする必要があり、曜日は簡単です。

 0 2,6,10,14,18,22 8-14 * * test $(date +\%u) -eq 1 && /opt/bin/cleanup.sh

最後の1は月曜日、月の日付範囲(8-14)を決定します。 2番目の月曜日の場合にのみ選択してください。

「r」で終わる毎月3日18:15:

 15 18 3 september,october,november,december * /opt/bin/verrrrrrrry.sh

(少なくともVixie cronでは月名を使用できます。サポートしていない場合は置き換えることができます9-12。)

答え2

形式は分/時/月/日/月/曜日です。

これは作る

0 4 9-15 * 2 /opt/bin/cleanup.shそして

15 18 3 8-14 * /opt/bin/verrrrrrrry.sh

答え3

毎月2番目の月曜日02:00から4時間ごとに実行されるcronエントリ

00 02/4 8-14 * * [ `date +\%u` = 1 ] && /opt/bin/cleanup.sh
  • http://crontab.guru/#00_02/4_8-14_*_1

毎月3日18:15に実行され、「r」で終わるcronエントリです。

15 18 3 9-12 * /opt/bin/verrrrrrrry.sh
  • http://crontab.guru/#15_18_3_9-12_*

関連情報