docker mysql 备份shell

#!/bin/bash
dateBackup=$(date +%Y-%m-%d_%H:%M:%S)
dir=/app/mysql/bf/backup
# 宿主机新建目录,通过挂载会自动添加到容器
if [ ! -d "${dir}" ];
then
                mkdir ${dir}
                echo "创建文件夹 ${dir} 成功" >> ${dir}/log/${dateBackup}Debug.log
else
                echo "创建文件夹 ${dir} 失败,文件夹已存在" >> ${dir}/log/${dateBackup}Debug.log
fi
# 需要备份的数据库名


                echo "-----------------> 备份所有数据库 <-----------------" >> ${dir}/log/Debug.log
        docker exec -i 25efbbc261f7 sh -c "mysqldump -uroot -p数据库密码 --force --all-databases 1>> /opt/backup/${dateBackup}.sql 2>> /opt/backup/${dateBackup}Debug.log"
        docker cp 25efbbc261f7:/opt/backup/${dateBackup}.sql ${dir}/sql/
        docker cp 25efbbc261f7:/opt/backup/${dateBackup}Debug.log  ${dir}/log/
        zip  ${dir}/sql/${dateBackup}.zip ${dir}/sql/${dateBackup}.sql
        docker exec -i 25efbbc261f7 sh -c "rm -rf /opt/backup/*"
        echo "操作成功" >> ${dir}/log/Debug.log
echo -e " \n ----------------> 删除过期文件 <---------------------------" >> ${dir}/log/${dateBackup}Debug.log
# 判断文件夹数量是否大于7,防止程序意外停止,删除所有备份
dirCount=`ls -l /app/mysql/bf/backup/sql|grep "^d"|wc -l`
if [ ${dirCount} -gt 7 ]
then
        # 删除超过七天的带"_"的目录
        find /app/mysql/bf/backup/sql -mtime +6 -name "*.sql" -exec rm -rf {} \;
        echo -e " 删除过期文件成功" >> ${dir}/log/${dateBackup}delete.log
else
        echo "删除过期文件失败,文件数量小于 7 " >> ${dir}/log/${dataBackup}delete.log
fi
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值