MySQLdump備份併發送郵件

概述:
文檔中使用smtp協議,利用QQ郵箱發送郵件,其中客戶端授權碼是在開啓QQ郵箱smtp服務是官方給予的,所以要牢記!!!
1、配置smtp
#Linux

yum install -y mailx

#修改配置文件

vi /etc/mail.rc

#在末尾追加如下內容並保存

set [email protected]   #設置發件人
set smtp=smtp.qq.com                    #設置外部STMP服務器
set [email protected]   #設置STMP用戶名
set smtp-auth-password=xxxxxxx   #客戶端授權碼
set smtp-auth=login

#測試

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

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

4、crontabl
crontab -e #加入此腳本路徑

    * 23 * * *   /bin/sh  /home/mysql/data/backup/mysql/mysqldump.sh
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章