mysql定时备份脚本

这是一个用于定期备份MySQL数据库的Bash脚本。它分别针对二进制安装和容器化部署的数据库进行备份,并在备份完成后删除7天前的旧备份。脚本使用mysqldump工具,并通过配置的服务器地址、端口、用户名和密码连接到数据库。
摘要由CSDN通过智能技术生成
#!/bin/bash
#crontab -e  
#55 23 * * * /app/mysql_backup/mysqldump.sh
#crontab -l

current_time=`date +"%Y%m%d"`
backpath=/app/mysql_backup/$current_time/

#package_list是二进制安装版本
#container_list是容器安装版本
#(ip:port:username:passwd ip2:port2:username2:passwd2)以空格分隔

package_list=(192.168.8.148:3306:root:xxxxxx )
container_list=(192.168.8.148:3306:root:xxxxxx )

del_backup(){
	#删除7天前的日志备份
	old_time=`date -d "-7 day" +"%Y%m%d"`
	old_backpath=/app/mysql_backup/$old_time/
	#echo $old_backpath
	if [ -d $old_backpath ];then
		rm -rf $old_backpath
		echo "$old_backpath was clear"
	fi
}

#备份所有数据库 二进制部署方式
package(){
	for i in ${package_list[*]}; do
		#echo $i
		ipaddr=`echo $i|awk -F: '{print $1}'`
		port=`echo $i|awk -F: '{print $2}'`
		username=`echo $i|awk -F: '{print $3}'`
		passwd=`echo $i|awk -F: '{print $4}'`
		echo $ipaddr $port $username $passwd

		dsturl=$backpath$ipaddr
		echo $dsturl

		[ -d $dsturl ] || mkdir -p $dsturl
		mysqldump -u$username -p$passwd -h $ipaddr -P $port -A > $dsturl/package.sql
		if [ $? -eq 0 ];then
		    echo "$current_time backup finish"
		else
			echo "$current_time backup error"
		fi
	done
}
#备份所有数据库 容器化部署
container(){
	for i in ${container_list[*]}; do
		#echo $i
		ipaddr=`echo $i|awk -F: '{print $1}'`
		port=`echo $i|awk -F: '{print $2}'`
		username=`echo $i|awk -F: '{print $3}'`
		passwd=`echo $i|awk -F: '{print $4}'`
		echo $ipaddr $port $username $passwd

		dsturl=$backpath$ipaddr
		echo $dsturl

		[ -d $dsturl ] || mkdir -p $dsturl
		mysqldump -u$username -p$passwd -h$ipaddr -P$port -A > $dsturl/container.sql
		if [ $? -eq 0 ];then
		    echo "$current_time backup finish"
		else
			echo "$current_time backup error"
		fi
	done
}

package
container
del_backup
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值