mysql数据库使用xtrabackup备份脚本_2018_lcf

16 篇文章 0 订阅

 下面的脚本主要功能:

         1. 每天备份一次单个库我多个库,使用mysqldump命令来备份并tar进行压缩。

          2. 定时周一、周三、周五、周日使用xtrabackup工具物理全备份并tar进行压缩

          3. 每天执行脚本同时检查备份目录里的备份文件,只保留当月和上个月的备份文件

要计划任务配合来执行,可以设置每天凌晨2点执行1次

#!/bin/bash
[ ! -e /data/backups ] && mkdir -p /data/backups
# 备份存放目录
DataURL=/data/backups/sql/
# 文件名
DataName="sql$(date +%Y%m%d%H%M)"
# 数据库连接端口
Dport=1668
# 数据库用户名
Duser='root'
# 数据库密码
Dpwd='123456'
# 要单独备份的数据库名,可以设置多个库备份,空格做分隔
Datebases=(xds.shopmall)
wdate=`date +%w`
# 每周一全备份一次,使用xtrabackup工具备份,再用tar -zcpf打包压缩
if [ $wdate == "1" ] || [ $wdate == "3" ] || [ $wdate == "5" ] || [ $wdate == "7" ];then
	/usr/bin/innobackupex --defaults-file=/etc/my.cnf --port=$Dport --user=$Duser --password=$Dpwd $DataURL$DataName
	/usr/bin/tar -zcpf $DataURL$DataName.tar.gz $DataURL$DataName 
	rm -rf $DataURL$DataName
fi
# 每天备份一次xds.shopmall表,使用mysqldump命令进行热备
DataName="$(date +%Y%m%d)"
for d in ${Datebases[@]}
do
	/usr/local/mysql/bin/mysqldump -R -E -port=$Dport -u$Duser -p$Dpwd $d > $DataURL$d$DataName
	/usr/bin/tar -zcpf $DataURL$d$DataName.tar.gz $DataURL$d$DataName	
	rm -rf $DataURL$d$DataName
done
# 删除备份,只保留上一月和当月的备份
ndate=$(date +%Y%m)
m=$(date +%m)
# (判断是否是1月获取上个月的数值)
if [ $m == "01" ];then
	ldate=$((ndate-89))
else
	ldate=$((ndate-1))
fi 
cd $DataURL
DelFile=`ls | grep -v -E "$ldate|$ndate" | xargs`
if [ $? -eq 0 ];then
	/bin/rm -rf $DelFile
fi
exit

删除指定文件的方法 有种更简洁的方法

[ $? -eq 0 ] && rm -rf !($ntemp$dtemp1*|$ntemp$dtemp2) || exit

(但centos7.3用不了,7.4的以上可以用) 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

璐程风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值