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