概述:
文档中使用smtp协议,利用QQ邮箱发送邮件,其中客户端受权码是在开启QQ邮箱smtp服务是官方给予的,因此要牢记!!!
一、配置smtp
#Linuxmysql
yum install -y mailx
#修改配置文件sql
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
#测试bash
echo "this is my test mail" | mail -s 'mail test' xxxxxxx@qq.com
二、创建备份目录服务器
mkdir -p /home/mysql/data/backup/mysql chown mysql:mysql /home/mysql/data/backup/mysql
三、备份脚本socket
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
四、crontabl
crontab -e #加入此脚本路径ide
* 23 * * * /bin/sh /home/mysql/data/backup/mysql/mysqldump.sh