<?xml version="1.0"?>
<!DOCTYPE wml PUBLIC "-//WAPFORUM//DTD WML 1.1//EN" "http://www.wapforum.org/ DTD/wml_1.1.xml">

<wml>
<head>
<meta http-equiv="cache-control" content="max-age=180,private" />
</head>
<card title="自动备份mysql数据库并发送到Email">
<p>
作者:<a href="index.php?action=showuser&amp;userid=1&amp;hash=">admin</a><br />时间:2010-07-25 16:21<br />分类:<a href="index.php?action=list&amp;cid=3&amp;hash=">电脑技术</a><br />内容:
自动备份mysql数据库并发送到Email


一个博客,一个网站最重要的就是数据库,所以经常备份数据是必须的.尽管 WordPress 有定时备份数据的插件,但只能备份当前的博客,不够灵活.适合个人小小博客,对于一些网站来说,就不适合了.现在很多人都拥有多个网站.每个网站都装个插件就比较麻烦了.况且不是每个网站都是 WordPress 的 .


所以写了个自动备份mysql数据库的脚本,再加上gmail这个G级邮箱,备份多少数据都可以了...下面是代码:




mysqldump -uuser -ppassword --databases db1 db2 db3 &gt; /home/website/backups/databackup.sql
tar zcf /home/website/backups/databackup.sql.tar.gz /home/website/backups/
echo &quot;主题:数据库备份&quot; | mutt -a /home/website/backups/databackup.sql.tar.gz -s &quot;内容:数据库备份&quot; www@gmail.com
rm -r /home/website/backups/*





将上面的代码保存为automysqlbackup.sh
然后利用crontab 实现动备份,在ssh下,




crontab -e




输入以下内容:




00 00 * * * /home/website/automysqlbackup.sh




这样就实现了每天00:00自动备份mysql数据库并发送到Email


简单的说明下吧.
第一句是一次性备份多个数据库,这个要你用root权限的用户才可以的..-u后面的是数据库用户名 -p后面的是数据库密码 无需空格 db1 db2 db3为你需要备份的数据库名.
如果你的数据库用户名没有root这个权限,可以改为这样




mysqldump -uuser -ppassword db1 &gt; /home/website/backups/db1.sql
mysqldump -uuser -ppassword db2 &gt; /home/website/backups/db1.sql
mysqldump -uuser -ppassword db3 &gt; /home/website/backups/db1.sql




第二句是将 backups 文件夹里面的数据文件压缩为文件名:databackup.sql.tar.gz


第三句是将压缩了的数据库文件发送到指定的邮箱.....


其中的主题:数据库备份 ,就是邮件的主题, 内容:数据库备份,就是邮件的内用,


/home/website/backups/databackup.sql.tar.gz 为附件


www@gmail.com为要发送的Email
</p><p>
<a href="index.php?action=login&amp;hash=">立即登陆发表评论</a><br />
</p>
<p><a href="index.php?action=list&amp;hash=">返回日志列表</a><br /><a href="index.php?action=index&amp;hash=">返回主页</a></p>
</card>
</wml>
