check_mysql_backup_status

# 说明:
# 1.需要安装bc 软件 :  yum install -y bc 


# 定义变量 
backupDir="/data/DB"                                                                 # 备份文件存放的路径
todayDateYMD=$(date +%Y%m%d)                                                         # MySQL备份脚本中定义的当天时间,  第一部分时间:年月日
yesterdayDateYMD=$(date -d "-1day" +%Y%m%d)                                          # MySQL备份脚本中定义的前一天时间,第一部分时间:年月日

todayFile=$( ls -lSr ${backupDir} |grep "${todayDateYMD}" |tail -n 1|awk -F " " '{print $NF}' )
yesterdayFile=$( ls -lSr ${backupDir} |grep "${yesterdayDateYMD}" |tail -n 1|awk -F " " '{print $NF}' )

# 获取备份大小 
todayFileSize=$(du -a ${backupDir}/${todayFile}| awk  -F " " '{ print $1}' | tr -d "a-zA-Z")
yesterdayFileSize=$(du -a ${backupDir}/${yesterdayFile}| awk  -F " " '{ print $1}' | tr -d "a-zA-Z") 

# 比较大小的规则: 令前一天备份文件大小为b,当天备份文件大小为a,则  (b*1.5)>=a<=(b*0.5)
# (b*1.5)
yesterdayFileSizeGE=$(echo "scale=0; $yesterdayFileSize*1.5/1"|bc)

# (b*0.5)
yesterdayFileSizeLE=$(echo "scale=0; $yesterdayFileSize*0.5/1"|bc)

# 防止 mysql_daily_backup.log 文件过大
tail -n 30 ${backupDir}/mysql_daily_backup.log > ${backupDir}/mysql_daily_backup.log.tmp
cat ${backupDir}/mysql_daily_backup.log.tmp > ${backupDir}/mysql_daily_backup.log

# 检查当天备份的文件是否存在
if [[ -f "${backupDir}/${todayFile}" ]] ; then 
  echo "${backupDir}/${todayFile} 文件存在." 
  # 检查前一天备份的文件是否存在
  if [[ -f "${backupDir}/${yesterdayFile}" ]] ; then 
    echo "${yesterdayFile} 文件存在." 
    # 如果当天备份文件存在,且前一天备份文件存在,则比较大小
    if [[ ${todayFileSize} -le ${yesterdayFileSizeGE} ]] &&  [[ ${todayFileSize} -ge ${yesterdayFileSizeLE} ]] ; then
      echo "${todayDateYMD} 备份成功." >> ${backupDir}/mysql_daily_backup.log
    else
      echo "${todayDateYMD} 备份失败, 当天与前一天备份文件的大小差异较大!!!" >> ${backupDir}/mysql_daily_backup.log
    fi
  else
    echo "${todayDateYMD} 备份失败, 前一天备份文件不存在!!!" >> ${backupDir}/mysql_daily_backup.log    
  fi    
else
  echo "${todayDateYMD} 备份失败, 当天备份文件不存在!!!" >> ${backupDir}/mysql_daily_backup.log    
fi

 

posted @ 2025-06-21 03:01  屠魔的少年  阅读(7)  评论(0)    收藏  举报