2012-06-10 233 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,但我认为这是一个选择退出困境,但不是正确的答案:) –

相关问题