Mysql5.7.26_Rsync_Bak

#!/bin/bash
DB=abc
MUSER=root
MPASS=abcdE123321
BAKFILE=/application/mysql/bin/mysqldump
MSQL=/application/mysql/bin/mysql
RSYNC_IP=192.168.189.62
RSYNC_USER=rsync_backup
RSYNC_PASS="--password-file=/etc/rsync.password"
RSYNC_MOD=backup
RSYNC_DEST="$RSYNC_USER@$RSYNC_IP::$RSYNC_MOD"
GTIDCMD="show variables like '%gtid_mode%';"
BAKDIR=/backup/mysql
Date=$(date +%F)
SQLFILE=${BAKDIR}/$DB\_$Date.sql
GTIDPAR="--flush-logs --set-gtid-purged=OFF"
function bakdata()
{
clear
date
mkdir -p /backup/mysql
echo -e "\033[31m 开始数据备份..........\033[0m"
sleep 2
#检测Mysql 有没有开启GTID
$MSQL -u$MUSER -p$MPASS -e "$GTIDCMD" 2>/tmp/sec.log|grep "ON" >/dev/null
#判断GTID是否开启,分别执行不同的备份命令。
if [ $? -eq 0 ];then
$BAKFILE -u$MUSER -p$MPASS "$GTIDPAR" $DB >$SQLFILE 2>/tmp/bak.log
  if [ $? -ne 0 ];then
      echo "备份有问题,日志文件 /tmp/bak.log 。"
      exit
  else
      echo -e "\033[31m 数据备份完成。\033[0m"
  fi
else
$BAKFILE -u$MUSER -p$MPASS $DB >$SQLFILE 2>/tmp/bak.log
  if [ $? -ne 0 ];then
      echo "备份有问题,日志文件 /tmp/bak.log 。"
      exit
  else
      echo -e "\033[31m 数据备份完成。\033[0m"
  fi
fi
}
function chkdata()
{
#生成校验文件的flag文件
cd $BAKDIR
md5sum $DB\_$Date.sql>./md5_$DB\_$Date
}

function rsyncdata()
{
echo -e "\033[31m 开始数据同步传输..........\033[0m"
sleep 2
#将备份的文件同步到Rsync 服务器
rsync -auzP --delete $BAKDIR/ $RSYNC_DEST $RSYNC_PASS >/tmp/rsy.log 2>&1
if [ $? -ne 0 ];then
    echo "Rsync 有问题,日志文件/tmp/rsync.log ."
    exit
else
    echo -e "\033[31m Rsync 数据同步完成。\033[0m"
fi
}
bakdata
chkdata
rsyncdata
#本地备份文件保留三天
find $BAKDIR -mtime +3|xargs rm -rf
date