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

Cronjob は、今週の土曜日から 2 週間ごとに土曜日に実行されます

解決策 1:

0 8 * * 6 test $((10#$(date +\%W)\%2)) -eq 1 && yourCommand

date +%W :月曜日を週の最初の日とする年の週番号、今日は第 39 週

10#$(date +%W) :date +W を変換します 10 進数に変換し、シェル ベースの解析の混乱を回避します

$((39%2)) :モジュロ演算:結果は 0 (偶数週) または 1 (奇数週)、今週の結果は 1、来週は 0

test 1 -eq 1 :算術テスト (等しい)。この場合、結果はブール値の true です

&& yourCommand :ブール値 AND:yourCommand を実行 前のコマンドの結果が真偽値だった場合のみ

年には奇数週が 2 つあることに注意してください:53 (今年) と 1 (来年)

解決策 2:

あなたが示したのは「毎週」です。コードは次のとおりです。

0 8 * * 6

2 週間ごとに実行する必要がありますか?

0 8 * * 6 expr `date +\%s` / 604800 \% 2 >/dev/null || yourCommand

Linux
  1. X秒ごとにLinuxコマンドを実行または繰り返す方法

  2. SystemdとTerminalの起動プログラムの違いは?

  3. Linux – Systemdで30分ごとにスクリプトを実行しますか?

  1. cronjob でパスワードなしの MySQLdump

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

  3. IP 転送 =いつ、なぜこれが必要なのですか?

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

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

  3. WGET を使用して cronjob PHP を実行する