定时备份Docker中的MongoDB到阿里云的OSS

1. 安装OSS工具

OSS的详细教程 https://www.alibabacloud.com/help/zh/doc-detail/120075.htm

linux64 root用户为例

  1. 下载

    cd /usr/local/bin
    wget http://gosspublic.alicdn.com/ossutil/1.6.17/ossutil64
    
  2. 配置

    cp ossutil64 ossutil
    
    chmod 755 ossutil64
    chmod 755 ossutil
    
  3. 生成配置文件

    ossutil config
    第一步输入配置文件, 直接按回车即为默    认/root/.ossutilconfig
    第二步输入语言: CH
    第三步输入endpoint:http://oss-cn-shenzhen.aliyuncs.com
    第四步输入accessKeyID
    第五步输入accessKeySecret
    第六步输入stsToken:不用输, 回车即可
    

2. 创建备份脚本

vi /root/auto-backup.sh

#!/bin/bash
# 容器名叫mongo-yapi
# 时间, 做文件名用
dd=`date +%Y-%m-%d-%H-%M-%S`
# 备份到容器的 /dump/$dd文件夹
docker exec  mongo-yapi mongodump   -o /dump/$dd
# 压缩/dump/$dd为/dump/$dd.tar
docker exec mongo-yapi tar -cvf /dump/$dd.tar /dump/$dd
# 复制压缩包到宿主机的/dump/$dd.tar
docker cp mongo-yapi:/dump/$dd.tar /dump/$dd.tar
# 删除docker中的备份数据
docker exec  mongo-yapi rm -rf /dump/
# 上传至oss
/usr/local/bin/ossutil --config-file=/root/.ossutilconfig cp /dump/$dd.tar oss://bucket名称/yapi/$dd.tar
删除本地的备份数据
rm -rf /dump/*

2.1. 更改脚本权限

chmod 755 /root/auto-backup.sh

3. 创建定时任务

crontab -e

 # 每天备份一次, 输出重定向到/var/log/crontab/mysql.log
 # /var/log/crontab/文件夹需要提前创建
 0 0 * * * /root/auto-backup.sh > /var/log/crontab/mysql.log 2>&1 &

.

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。