真夜中以降の時間範囲を持つcrontabエントリ

真夜中以降の時間範囲を持つcrontabエントリ

これは有効なcrontab時間仕様ですか?期待される操作を実行します。

0 22-4 * * *

または、次のことを行う必要がありますか?

0 22,23,0,1,2,3,4 * * *

答え1

真夜中にcronjobを実行する際に問題があります。問題のスクリプトにほぼ同じ2つの項目を追加しました。

* 22-00 * * * /myscript
* 00-05 * * * /myscript

これがうまくいったようです。
22-05を使用してcron failureが発生し、削除プロセスを経て、この回避策を考え出しました。

答え2

周りにはさまざまなcronデーモンがあり、正確にどのデーモンを使用しているかを教えてくれない限り、それを見つける方法はありません(この極端な場合は、リスト処理があるバージョンから次のバージョンに変わる可能性があります)。最良の方法は、明確なチェックリストに従うことです。いくつかの実装では、ラップアラウンドを奇妙な表現方法で扱ってもあまり驚かないでしょう4-22

現地の文書にこの状況が記載されていますか?たとえば、2つのリストを持つことが合法的ですか22-23,0-4

答え3

私はこのような範囲を使ったことがないし、それがうまくいくかどうかわかりません。だから私の最初の提案はそれをテストし、何が起こるのかを見ることです。おそらく、ログエントリや他の無害なことを実行するスクリプトを使用することもできます。

次に、ATTとBSD cronを使用すると、範囲とリストが共存できないため、各時間を別々にリストするか、2行(1つの範囲、もう1つはリスト)が必要です。

答え4

クローン検査に役立つツール:

https://crontab.guru/

* 22-4 * * *cronは「当日」動作するため、cronを使用すると機能しません。

さまざまなバリエーションを試してみることができますが、最も正確なものは次のとおりです。

ここに画像の説明を入力してください。

関連情報