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

cronに隔週でジョブを実行するように指示する方法は?

答え

火曜日の cron ロジックを変更して、エポックから 隔週で実行するようにします .

1 週間が 604800 秒であることを知り (DST の変更と閏秒を無視します、ありがとうございます)、GNU 日付を使用します:

0 6 * * Tue expr `date +\%s` / 604800 \% 2 >/dev/null || /scripts/fortnightly.sh

さておき

カレンダーの計算はイライラします。

@xahtepの答えは素晴らしいですが、@Doppelgangerがコメントで指摘したように、特定の年の境界で失敗します。 date のどれも utility の「年の週」指定子がここで役立ちます。 1 月上旬のある火曜日は、必然的に前年の最終火曜日の週パリティを繰り返します:2016-01-05 (%V)、2018-01-02 (%U)、および 2019-01-01 (%W) .


ピルクロウの答えは素晴らしいです。ただし、fortnightly.sh スクリプトは 偶数 ごとに実行されます。 週 (エポックから)。スクリプトを odd で実行する必要がある場合 数週間、彼の答えを少し調整できます:

0 6 * * Tue expr \( `date +\%s` / 604800 + 1 \) \% 2 > /dev/null || /scripts/fortnightly.sh

1 を 0 に変更すると、偶数週に戻ります。


これはどうですか、crontab に保持されます 最初の 5 つのフィールドで正確に定義されていなくても:

0 6 * * Tue expr `date +\%W` \% 2 > /dev/null || /scripts/fortnightly.sh

Linux
  1. cronジョブを設定する方法

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

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

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

  2. 毎週日曜日にcrontabジョブを実行する方法

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

  1. 3か月ごとにcronジョブを実行する方法は?

  2. 2 日ごとの午後 11 時に cron ジョブを実行するように設定する方法

  3. 毎日特定の時間にcronジョブを実行する方法は?