天天看點

對于一個特殊的例行性任務的解決

我的備份有2個:一個是每天執行一次,一個是每周日執行一次

現在的要求是:每個月的2号和3号不執行備份,其餘的時間照常

在crontab中,沒找到這樣特殊情況的寫法,想來想去還是改腳本來解決

在備份開始之前,先做一個判斷目前是幾号的操作

其内容如下

#!/bin/sh

# modified by yahoon 2009.9.14

# the backup don't run on 2nd and 3rd every month

#Get current time

CURRENT_TIME=`date +%Y%m%d-%H%M`

#Get the weekday

DATE_n=`date +%d`

# Tell if today is 2nd or 3rd

if [ "$DATE_n" == "02" ] || [ "$DATE_n" == "03" ]; then

    echo "Today is $CURRENT_TIME, NOTHING to do">>/var/log/backup.log

    exit 0

else

    /usr/bin/mysqldump -h localhost --opt -u xxx -pxxx abc > /backup/abc$CURRENT_TIME.sql

    gzip /backup/abc$CURRENT_TIME.sql

fi

附: date指令 擷取星期幾和幾号

一般情況下

[root@dbpi01 ~]# date

Sun Sep 13 21:24:37 CDT 2009

擷取星期幾

[root@dbpi01 ~]# DATE_n=`date +%u`

[root@dbpi01 ~]# echo $DATE_n

7

擷取幾号

[root@dbpi01 ~]# DATE_n=`date +%d`

13

2号的時候

02

不是2

是以<b>if [ "$DATE_n" == "02" ] || [ "$DATE_n" == "03" ]; then</b>

這個判斷語句是02而不是2

本文轉自yahoon 51CTO部落格,原文連結:http://blog.51cto.com/yahoon/201666,如需轉載請自行聯系原作者