毎分24x7で実行されるcronjobがあります。毎日午後10時から午前12時までメンテナンス期間なので中止したいです。私ができる方法はありますか?
答え1
つまり、毎日実行したいという意味です。xx:yy、どこダブルX0 ~ 21 のランダムな時間です。うん今すぐです。時間は00:00に始まり、21:59に終了します。
だから:
* 0-21 * * * command...
すでに21:30に停止したい場合は、その時間に対して別々のルールを作成する必要があります。
* 0-20 * * * command...
0-29 21 * * * command...
ここの期間は非常に簡単なので、この方法で簡単に行うことができます。より複雑なスケジュール(たとえば、32分ごとに(正確に1日45回))で実行する場合は、時間は時間とともにほぼランダムに分散されるため、ほぼ毎時間の規則が必要です。プログラムで時間を見て計算を実行する方が簡単です。
さらに、平日とカレンダーの日付を組み合わせることは(例:古典的な「毎月の最初の日曜日」を実行する)、はるかに困難であり、通常は少しのスクリプトが必要です。 (これは基本的にコメントにリンクされた質問それについて。 )これは、ほとんどが月と曜日のフィールドがどのようにcrontab
機能するかによるものです。他の場合と同様に、両方のフィールドが一致する必要はなく、これで十分です。誰でもcrontab
したがって、スケジュールをより小さな規則に分割し、それに基づいて構築することは不可能です。