模拟mysql每周物理备份脚本(周一全量备份,周二周三周五周六增量备份,周四周天差异备份)

1.第一种:

#./bin/bash
#mysql用户
mysql_user="root"
#mysql密码
mysql_password="qf@123"
#制作数据存放目录(full存放全量,add存放增量,diff存放差异)
full=/back/full/
add=/back/add/
diff=/back/diff/
#xtrabackup工具
xtarabackup="innobackupex --user=$mysql_user --password=$mysql_password" 

#备份函数
backup(){

#模拟星期一到星期天数据备份流程     
for i in `seq 7`;do
    if [[ $i -eq 1 ]];then
         $xtarabackup $full &>/dev/null
         if [[ $? -ne 0 ]];then
             echo "周一全量备份失败" | mail -s "Mysql备份" 1037760960@qq.com
             echo "周一全量备份失败"
             exit 2
         else
             echo "周一全量备份成功"      
         fi


    elif [[ $i -eq 2 ]];then
         full_data=$(ls -lt $full  | awk 'NR==2' | awk '{print $9}')
         $xtarabackup --incremental $add --incremental-basedir=$full$full_data &>/dev/null
         if [[ $? -ne 0 ]];then
             echo "周二增量备份失败" | mail -s "Mysql备份" 1037760960@qq.com 
             echo "周二增量备份失败"
             exit 2
         else
             echo "周二增量备份成功!"      
         fi



    elif [[ $i -eq 3 ]];then
         add_data=$(ls -lt $add  | awk 'NR==2' | awk '{print $9}')
         $xtarabackup --incremental $add --incremental-basedir=$add$add_data &>/dev/null
         if [[ $? -ne 0 ]];then
             echo "周三增量备份失败" | mail -s "Mysql备份" 1037760960@qq.com
             echo "周三增量备份失败"
             exit 2
         else
             echo "周三增量备份成功!"      
         fi
    
    
    elif [[ $i -eq 4 ]];then
         full_data=$(ls -lt $full  | awk 'NR==2' | awk '{print $9}')    
         $xtarabackup --incremental $diff --incremental-basedir=$full$full_data &>/dev/null
         if [[ $? -ne 0 ]];then
             echo "周四差异备份失败" | mail -s "Mysql备份" 1037760960@qq.com
             echo "周四差异备份失败"
             exit 2
         else
             echo "周四差异备份成功"      
         fi


    elif [[ $i -eq 5 ]];then
         diff_data=$(ls -lt $diff  | awk 'NR==2' | awk '{print $9}')
         $xtarabackup --incremental $add  --incremental-basedir=$diff$diff_data &>/dev/null
         if [[ $? -ne 0 ]];then
             echo "周五增量备份失败" | mail -s "Mysql备份" 1037760960@qq.com 
             echo "周五增量备份失败"
             exit 2
         else
             echo "周五增量备份成功!"      
         fi


    elif [[ $i -eq 6 ]];then
         add_data=$(ls -lt $add  | awk 'NR==2' | awk '{print $9}')
         $xtarabackup --incremental $add   --incremental-basedir=$add$add_data  &>/dev/null
         if [[ $? -ne 0 ]];then
             echo "周六增量备份失败" | mail -s "Mysql备份" 1037760960@qq.com
             echo "周六增量备份失败"
             exit 2 
         else
             echo "周六增量备份成功!"      
         fi

    elif [[ $i -eq 7 ]];then
         full_data=$(ls -lt $full  | awk 'NR==2' | awk '{print $9}')
         $xtarabackup --incremental $diff  --incremental-basedir=$full$full_data &>/dev/null
         if [[ $? -ne 0 ]];then
             echo "周日差异备份失败" | mail -s "Mysql备份" 1037760960@qq.com
             echo "周日差异备份失败"
             exit 2
         else
             echo "周日差异备份成功!"      
         fi                          
    fi
done     
}

backup

第二种:

#./bin/bash
#mysql用户
mysql_user="root"
#mysql密码
mysql_password="qf@123"
#制作数据存放目录(full存放全量,add存放增量,diff存放差异)
full=/back/full/
add=/back/add/
diff=/back/diff/
#xtrabackup工具
xtarabackup="innobackupex --user=$mysql_user --password=$mysql_password" 

day=`date  | awk '{print $1}'`
echo $day
backup(){
    if [[ $day == "Mon" ]];then
         $xtarabackup $full
         if [[ $? -ne 0 ]];then
             echo "周一全量备份失败" | mail -s "Mysql备份" 1037760960@qq.com
             echo "周一全量备份失败"
             exit 2
         else
             echo "周一全量备份成功"      
         fi

    elif [[ $day == "Tue" ]];then
         full_data=$(ls -lt $full  | awk 'NR==2 {print $9}')
         $xtarabackup --incremental $add --incremental-basedir=$full$full_data &>/dev/null
         if [[ $? -ne 0 ]];then
             echo "周二增量备份失败" | mail -s "Mysql备份" 1037760960@qq.com 
             echo "周二增量备份失败"
             exit 2
         else
             echo "周二增量备份成功!"      
         fi


    elif [[ $day == "Wed" ]];then
         add_data=$(ls -lt $add  | awk 'NR==2 {print $9}')
         $xtarabackup --incremental $add --incremental-basedir=$add$add_data &>/dev/null
         if [[ $? -ne 0 ]];then
             echo "周三增量备份失败" | mail -s "Mysql备份" 1037760960@qq.com
             echo "周三增量备份失败"
             exit 2
         else
             echo "周三增量备份成功!"      
         fi


    elif [[ $day == "Thur" ]];then   
         full_data=$(ls -lt $full  | awk 'NR==2 {print $9}')    
         $xtarabackup --incremental $diff --incremental-basedir=$full$full_data &>/dev/null
         if [[ $? -ne 0 ]];then
             echo "周四差异备份失败" | mail -s "Mysql备份" 1037760960@qq.com
             echo "周四差异备份失败"
             exit 2
         else
             echo "周四差异备份成功"      
         fi


    elif [[ $day == "Fri" ]];then
         diff_data=$(ls -lt $diff  | awk 'NR==2 {print $9}')
         $xtarabackup --incremental $add  --incremental-basedir=$diff$diff_data &>/dev/null
         if [[ $? -ne 0 ]];then
             echo "周五增量备份失败" | mail -s "Mysql备份" 1037760960@qq.com 
             echo "周五增量备份失败"
             exit 2
         else
             echo "周五增量备份成功!"      
         fi
    elif [[ $day == "Sat" ]];then
         add_data=$(ls -lt $add  | awk 'NR==2 {print $9}')
         $xtarabackup --incremental $add   --incremental-basedir=$add$add_data  &>/dev/null
         if [[ $? -ne 0 ]];then
             echo "周六增量备份失败" | mail -s "Mysql备份" 1037760960@qq.com
             echo "周六增量备份失败"
             exit 2 
         else
             echo "周六增量备份成功!"      
         fi

    elif [[ $day == "Sun" ]];then
         full_data=$(ls -lt $full  | awk 'NR==2 {print $9}')
         $xtarabackup --incremental $diff  --incremental-basedir=$full$full_data &>/dev/null
         if [[ $? -ne 0 ]];then
             echo "周日差异备份失败" | mail -s "Mysql备份" 1037760960@qq.com
             echo "周日差异备份失败"
             exit 2
         else
             echo "周日差异备份成功!"      
         fi                                             
    fi
}
backup

  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值