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