您的位置:首页 > 运维架构 > Linux

linux-自动备份MySQL数据库,并邮件发送

2017-12-29 11:01 543 查看
网站的数据是最重要的,需要我们定期备份,接下来为大家说的就是 定期-自动-备份MySQL数据库,并且压缩后以邮箱发送

大概步骤就是:

1、确保 安装了 sendmail 和 mutt 包(没有安装的话,先安装好,再进行下面的操作)

2、新建脚本文件,备份数据库,打包文件,邮件发送 的代码

3、先手动执行脚本文件

4、执行成功后,将 该脚本放到 计划任务中,1分钟执行一次

 <开始操作>

我已经安装好 sendmail 和 mutt 了,所以从第二步直接开始;

2> 

vim back.sh
复制一下下面的代码:

#!bin/sh
#要备份网站的数据库信息
mysql_user="root"
mysql_pwd="root"
#定义备份邮件标题,可以区分是哪一天的
d=`date "+%Y-%m-%d_%H:%M:%S"`
#发送邮件标题和内容,这个是次要的,主要是附件中的数据库
t="databases backup - $d"
#数据库文件名称
BackName=backup_mysql_$d
#备份数据库存放路径<可以写上定期删除的脚本,我这里没有写>
BackPath=/tmp/
#导出数据库的所有库
mysqldump -u${mysql_user} -p${mysql_pwd} --events --all-databases > $BackPath$BackName.sql
#压缩数据库包,这样节省空间
tar cfP $BackPath$BackName.tar $BackPath$BackName.sql
#用mutt发送邮件,发送到我们指定的邮箱里"backup@itbulu.com"         -s  邮件标题  -a  指定的附件<多个的话后面继续加-a>
echo "$t"|mutt -s "$t" 1915494409@qq.com -a $BackPath$BackName.tar
exit
之后保存并退出

qw


3> 执行该脚本

./back.sh


结果邮件来了



邮件发送成功!

4> 将脚本放入 计划任务中,1分钟执行一次(可以根据自己的时间去备份,频率不用这么高)

   

crontab -e


在计划任务中写:(一分钟执行一次)

*/1 * * * * /bin/sh /back.sh


然后。。好烦人的邮件一分钟一次。。。



然后就感觉,,催命一样一分钟过得好快~

【完结】
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: