2012-06-10 226 views
0

我想要製作一個腳本,通過電子郵件發送我的mysqldump的結果。成功的結果應該是0,但是我得到的錯誤代碼是1.看起來像當我將結果傳遞給gzip時,結果發生變化,並且我不知道如何只捕獲mysqldump結果。mysqldump腳本沒有返回gzip輸出後的預期結果

這裏是我的腳本

DATE=$(date +"%Y-%m-%d_%Hh%Mm") 
BACKUPDIR=/backups 
BPAGE=4m 

mysqldump -u backup -pCih3brg4 -h localhost --all-databases | gzip > $BACKUPDIR/all_db_$DATE.sql.gz 

EXITCODE=$? 
if [ $EXITCODE -eq 0 ] ; then 

    chmod 600 $BACKUPDIR/all_db_$DATE.sql.gz 

    find $BACKUPDIR/ -type f -name "*.gz" -mtime +7 -exec rm {} \; 

    echo "DONE" 

else echo "$0: backup failed with error code $?" 

fi 
+1

你的if語句正確嗎?看起來你正在將_non_-zero結果視爲成功。 –

+0

我只是將if語句更改爲equals。我正在通過更改我的憑據進行測試。現在,如果轉儲失敗,我會從mysql獲取一個錯誤消息,但是它會顯示「DONE」。 – a2ron44

回答

-1

不回答本身,而是汽車MySQL將做到這一切給你,並有一些很好的特性。

http://sourceforge.net/projects/automysqlbackup/

我已經使用了多年,非常穩固。

+0

對不起@Cameron,但我認爲這是一個選擇退出困境,但不是正確的答案:) –

相關問題