GNU/Linux >> Linux の 問題 >  >> Linux

1日おきにコマンドを実行するようにcronに指示する方法(奇数/偶数)?

次のように、「DayofMonth」フィールドを使用して1日おきにコマンドを実行するようにcronを構成する場合:

1 22 */2 * * COMMAND

月の日が奇数になるたびに実行されます:1、3、5、7、9など。

2、6、8、10などのような月の日に実行するようにcronを構成するにはどうすればよいですか(文字通り指定せずに、月ごとに日数が異なるため問題があります)。

承認された回答:

試した構文は実際にはあいまいです。 1か月の日数によっては、奇数日に実行される月と偶数日に実行される月があります。これは、計算方法が可能性の総数を取り、それらを分割するためです。日範囲を手動で指定し、奇数日または偶数日を使用することで、この戦略的な動作をオーバーライドできます。偶数日のスクリプトは長い月の31日には実行されないため、偶数日のベースとして30日を使用しても何も失われません。また、31日があるかのように分割するように指定することで、奇数を強制できます。 -日の実行。

構文は次のようになります:

# Will only run on odd days:
0 0 1-31/2 * * command

# Will only run on even days:
0 0 2-30/2 * * command

同じ日数がない月についての懸念は、ここでは重要ではありません。これより多くの日がある月はないためです。2月が貧弱な場合、日付範囲は最後の1日か2日と一致しませんが、害はありません。リストされている。

このアプローチの唯一の「落とし穴」は、奇数日のサイクルを使用している場合、31日の月が続くと、コマンドはその月の最初にも実行されるということです。同様に、偶数サイクルを強制している場合、うるう年ごとに2月末に3日間のサイクルが1回発生します。 「隔日」の通常のパターンが毎月の偶数日または奇数日に常に当てはまるとは限らないという事実を実際に回避することはできません。これを強制すると、余分な実行が発生するか、実行が欠落します。日数が一致しない月。

関連:Linux –すべてのウィンドウを最小化するためのショートカット?
Linux
  1. X秒ごとにLinuxコマンドを実行または繰り返す方法

  2. 5 分、秒、時間、日、月ごとに cron を実行する方法

  3. 特定の曜日に cron ジョブを実行する方法

  1. 変数に格納されているコマンドを実行するにはどうすればよいですか?

  2. 1 時間ごとに実行可能ファイルを実行するように cron ジョブを設定する方法は?

  3. Java プログラムを毎日実行するようにスケジュールする方法は?

  1. 1時間10分ごとにcronジョブを実行する方法

  2. LinuxでCRONジョブを10秒ごとに実行するように設定するには?

  3. Linux:特定のディレクトリでコマンドを実行する方法