shell备份docker部署的mysql数据库

#!/bin/bash
dateBackup=$(date +%Y-%m-%d_%H:%M:%S)
dir=/data/mysql/backup/${dateBackup}
# 宿主机新建目录,通过挂载会自动添加到容器
if [ ! -d "${dir}" ]
then
		mkdir -p ${dir}
		echo "创建文件夹 ${dir} 成功" >> ${dir}/error.log
else
		echo "创建文件夹 ${dir} 失败,文件夹已存在" >> ${dir}/error.log
fi
# 需要备份的数据库名		
dbNames=(db1 db2 db3)
for dbName in ${dbNames[@]}
do
	echo "-----------------> 备份 ${dbName} 数据库 <-----------------" >> ${dir}/error.log
        docker exec -i mysql_compose01 sh -c "mysqldump -uroot -pRivamed@2018 ${dbName} 1>> ${dir}/${dbName}.sql 2>> ${dir}/error.log"
        gzip ${dir}/${dbName}.sql
done

echo -e " \n ----------------> 删除过期文件 <---------------------------" >> ${dir}/error.log
# 判断文件夹数量是否大于7,防止程序意外停止,删除所有备份
dirCount=`ls -l /data/mysql/backup/|grep "^d"|wc -l`
if [ ${dirCount} -gt 7 ]
then
	# 删除超过七天的带"_"的目录
	find /data/mysql/backup/ -mtime +6 -name "*_*" -exec rm -rf {} \;
	echo -e " 删除过期文件成功" >> ${dir}/error.log
else 
	echo "删除过期文件失败,文件数量小于 7 " >> ${dir}/error.log
fi

PS:${dir}需要挂载到容器中

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值