Linux下定时自动备份mysql数据库并发送到Email方法

自动备份mysql数据库的脚本,再加上gmail这个G级邮箱,备份多少数据都可以了,其他如QQ邮箱也不错...下面是代码:

代码:
mysqldump -uuser -ppassword --databases db1 db2 db3 > /home/website/backups/databackup.sql
tar zcf /home/website/backups/databackup.sql.tar.gz /home/website/backups/
echo "主题:数据库备份" | mutt -a /home/website/backups/databackup.sql.tar.gz -s "内容:数据库备份" [email protected]
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 > /home/website/backups/db1.sql
mysqldump -uuser -ppassword db2 > /home/website/backups/db1.sql
mysqldump -uuser -ppassword db3 > /home/website/backups/db1.sql

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

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

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

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

[email protected] 为要发送的Email

tar zcf /home/website/backups/databackup.sql.tar.gz /home/website/backups/
这里如果直接在ssh里执行会出错,加个大P就好了。tar zPcf
还有个问题这个压缩会把databackup.sql.tar.gz再一次压缩进去,文件变双倍了。不解。
临时压缩到另个文件夹解决了。

mutt 未安装不能发送邮件:yum install mutt

测试了一下ftp备份
yum install lftp 呵呵,真方便
/usr/bin/lftp -u username,password 222.xxx.xxx.222 -e "put /root/backup-$(date +%m%d%Y).sql;exit"
非常好用,远程目录可以直接加在 IP后面,不过ftp到国内的主机速度远不如gmail。
另外郁闷的是非21端口找不到解决的方法。

下面附上automysqlbackup.sh完整代码

/usr/local/mysql/bin/mysqldump -u3881260ffhdd -pkfgtfgcfgc3dfg518 --databases 3s6dfg0hdfdd > /home/backup/databackup.sql
tar zPcf /home/backup/databackup.sql.tar.gz /home/backup/databackup.sql
echo "mysql_bak:3s6dfg0hdfdd " | mutt -a /home/backup/databackup.sql.tar.gz -s "mysql_database_backup from 3s6dfg0hdfdd "
[email protected]
rm -r /home/backup/databackup.sql
rm -r /home/backup/databackup.sql.tar.gz

你可能感兴趣的:(Linux下定时自动备份mysql数据库并发送到Email方法)