MySQLdump备份并发送邮件

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了MySQLdump备份并发送邮件相关的知识,希望对你有一定的参考价值。

概述:
文档中使用smtp协议,利用QQ邮箱发送邮件,其中客户端授权码是在开启QQ邮箱smtp服务是官方给予的,所以要牢记!!!
1、配置smtp
#Linux

yum install -y mailx

#修改配置文件

vi /etc/mail.rc

#在末尾追加如下内容并保存

set from=xxxxxxx@qq.com   #设置发件人
set smtp=smtp.qq.com                    #设置外部STMP服务器
set smtp-auth-user=xxxxxxx@qq.com   #设置STMP用户名
set smtp-auth-password=xxxxxxx   #客户端授权码
set smtp-auth=login

#测试

echo "this is my test mail" | mail -s ‘mail test‘ xxxxxxx@qq.com

2、建立备份目录

mkdir -p /home/mysql/data/backup/mysql
chown mysql:mysql /home/mysql/data/backup/mysql

3、备份脚本

cd /home/mysql/data/backup/mysql
chmod +x mysqldump.sh
vi mysqldump.sh
#!/bin/bash

BACKUP_PATH=/home/mysql/data/backup/mysql
CURRENT_TIME=$(date +%Y%m%d_%H%M%S)

[ ! -d "$BACKUP_PATH" ] && mkdir -p "$BACKUP_PATH"

#数据库地址
HOST=localhost
#数据库用户名
DB_USER=root
#数据库密码
DB_PW=root

#要备份的数据库
FILE_GZ=$BACKUP_PATH/$CURRENT_TIME.sql.gz
FLAG=$BACKUP_PATH/$CURRENT_TIME.flag
LOG=$BACKUP_PATH/$CURRENT_TIME.log
/usr/local/mysql/bin/mysqldump -u$DB_USER -p$DB_PW --socket=/home/mysql/3306/data/mysql.sock  --host=$HOST -B --all-databases --master-data=2  --single-transaction  | gzip > $FILE_GZ # 此处必须要用绝对路径

#校验备份
md5sum $FILE_GZ > $BACKUP_PATH/$CURRENT_TIME.flag
md5sum -c $BACKUP_PATH/$CURRENT_TIME.flag > $BACKUP_PATH/$CURRENT_TIME.log

#删除 7 天以前的备份 「注意写法」
cd $BACKUP_PATH
find $BACKUP_PATH -mtime +7 -name "*sql.gz"  -exec rm -f  \;
find $BACKUP_PATH -mtime +7 -name "*.log"  -exec rm -f  \;
find $BACKUP_PATH -mtime +7 -name "*.flag"  -exec rm -f  \;

#发送邮件
echo "MySQL备份结果邮件,附件中显示OK则成功" | mail -s ‘mysql备份‘ -a $LOG xxxxxxx@qq.com  

4、crontabl
crontab -e #加入此脚本路径

    * 23 * * *   /bin/sh  /home/mysql/data/backup/mysql/mysqldump.sh

以上是关于MySQLdump备份并发送邮件的主要内容,如果未能解决你的问题,请参考以下文章

将日期添加到 mysqldump 命令

mysql5.6备份脚本并发送邮件

mysql自动备份数据库并发送邮件

mysql自动备份数据库并发送邮件

python备份mysql数据库并发送邮件

使用Navicat定时备份mysql数据库和创建报表并邮件自动发送