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