Linux
Cronjob 每兩週執行一次,週六,從本週六開始
今天是 2014 年 10 月 3 日星期五凌晨 3 點 58 分
我想安排一個這樣的 cronjob 在以下日期執行它:
- 2014 年 10 月 4 日星期六上午 8 點
- 2014 年 10 月 18 日星期六上午 8 點
- 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(明年)