备份MySql数据库并在特定时间通过电子邮件发送给他们

时间:2009-04-28 09:57:01

标签: mysql apache shell backup

我们正在运行一个包含大量MySql数据库的CentOS服务器,我需要的是一个非常简单的方法来支持这些。由于他们中的许多人都在几兆。倾倒,压缩它们然后将它们发送到安全的Google Apps帐户听起来是个不错的主意。

所以我需要的是:一个脚本将转储和压缩数据库,然后通过电子邮件发送到某个地方,如果它在其他地方发送电子邮件失败。

1 个答案:

答案 0 :(得分:2)

我使用以下脚本将小转储发送到专用邮件帐户。 当然,这假设您可以使用mail命令从您的计算机发送邮件。

#!/bin/bash
gzdate=`/bin/date +%Y-%m-%d_%H%M`;
gzfile=dump_${gzdate}.sql.gz
mailrecpt=recipient@domain.com
dumpuser=username
dbname=mydb
mysqldump --single-transaction --opt -u ${dumpuser} ${dbname} | gzip > ${gzfile}
if [ $? == 0 ]; then    
    ( echo "Database Backup from ${gzdate}:"; uuencode ${gzfile} ${gzfile} ) | mail -s "Database Backup ${gzdate}" ${mailrecpt};
else
    ( echo "Database Backup from ${gzdate} failed." ) | mail -s "FAILED: Database Backup ${gzdate}" ${mailrecpt};
fi

您只需要调整顶部的变量。