有一支排程backup.sh希望可以每兩週執行一次,但是Crontab並沒有隔週的參數選項。
網路上有文章提到可以用第幾週來判斷是否執行程式,分為下列兩種方式:
方式一,寫在script內
#!/bin/sh
v_ck=`date +%W`
v_run=`expr $v_ck % 2`
if [ $v_run = 1 ];
then backup.sh
exit 1
fi
方式二,利用test指令來判斷
10 10 * * * su - user | test $(( $( date +%W ) %2 )) -eq 1 && backup.sh
date +%W是指取得週數,例如:2017/10/19是今年的第42週
用週數除以2取餘數,可以得到0或1兩個數字,再來判斷是否為隔週