非常に具体的な2つのcron文が必要です。
毎月第2月曜日の02:00から4時間ごとに実行され、/opt/bin/cleanup.shファイルを実行するcronエントリ。
毎月3日18:15に実行されるcronエントリで、「r」で終わり、/opt/bin/verrrrrrrry.shを実行します。
私は様々なクローンテスターを試してみました。
スケジュールされたジョブチェッカー、計画された作業テスター、そしてスケジュールされた作業翻訳者
しかし、上記のように、これらのどれも高度なcron式を処理できないようです(または正しい式の形式を指定する方法がわかりません)。
私のcronステートメントをどのように確認できますか?デーモンがイベントを実行できるように、実際のイベントが完了するのを待つことはできません。
高度な式をサポートする良いクローンテスターはありますか?それとも、cronデーモンに式を解析させるか、これらの式をどのようにエンコードしますか?
この声明について私が今まで理解してきたのは次のとおりです。
0 2 * * 0#2 /opt/bin/cleanup.sh
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_*