MySQLdump backup and send mail

Overview:
document using smtp protocol, QQ mailbox to send mail use, where the client authorization code is in the open QQ mailbox smtp service is given to the official, so to keep in mind! ! !
1, configure the SMTP
#linux

yum install -y mailx

# Modify the configuration file

vi /etc/mail.rc

# At the end of the following additional content and save

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

#test

echo "this is my test mail" | mail -s 'mail test' [email protected]

2, create a backup directory

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

3, backup script

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 [email protected]  

4, crontabl
crontab -e # join this script path

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

Guess you like

Origin blog.51cto.com/11298469/2434589