Linux

Cronjob 每兩週執行一次,週六,從本週六開始

  • December 20, 2017

今天是 2014 年 10 月 3 日星期五凌晨 3 點 58 分

我想安排一個這樣的 cronjob 在以下日期執行它:

  1. 2014 年 10 月 4 日星期六上午 8 點
  2. 2014 年 10 月 18 日星期六上午 8 點
  3. 2014 年 11 月 1 日星期六上午 8 點……

所以每 2 週,週六,晚上 8 點。

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

date +%W: 一年中的第幾週,星期一是一周的第一天,今天是第 39 週

10#$(date +%W): 將數字轉換date +W為十進制數並避免 shell 基礎解析混淆

$((39%2)):模運算:結果為0(偶數週)或1(奇數週),本週結果為1,下週為0

test 1 -eq 1:算術測試(相等),在這種情況下結果是布爾真

&& yourCommand: Boolean AND:yourCommand僅目前一個命令的結果為 boolean true 時才執行

請注意,一年可以有兩個奇數週:53(今年)和 1(明年)

引用自:https://serverfault.com/questions/633264