一、方案背景
由于服务器上数据量越来越大,备份的数据会占用硬盘空间(虽说云硬盘可随时扩容,但是存在风险),定时将备份上传到COS。不仅节省服务器硬盘空间,也大大提高备份数据的安全性、可靠性。
二、操作步骤
1、软件依赖:JDK1.7 或以上
下载链接:https://github.com/tencentyun/cos_migrate_tool_v5
2、解压缩工具包,或者使用git clone直接克隆到本地
Windows
解压并保存到某个目录,例如
C:\Users\Administrator\Downloads\cos_migrate
Linux
解压并保存到某个目录
unzip cos_migrate_tool_v5-master.zip && cd cos_migrate_tool_v5-master
迁移工具结构
正确解压后的 COS Migration 工具目录结构如下所示:
COS_Migrate_tool
|——conf #配置文件所在目录
| |——config.ini #迁移配置文件
|——db #存储迁移成功的记录
|——dep #程序主逻辑编译生成的JAR包
|——log #工具执行中生成的日志
|——opbin #用于编译的脚本
|——src #工具的源码
|——tmp #临时文件存储目录
|——pom.xml #项目配置文件
|——README #说明文档
|——start_migrate.sh #Linux 下迁移启动脚本
|——start_migrate.bat #Windows 下迁移启动脚本
3、修改 config.ini 配置文件
在执行迁移启动脚本之前,需先进行 config.ini 配置文件修改(路径:./conf/config.ini)
以下为从本地迁移、备份到cos
type 表示迁移类型,用户根据迁移需求填写对应的标识。本地[migrateType]的配置内容是type=migrateLocal。
配置迁移任务
用户根据实际的迁移需求进行相关配置,主要包括迁移至目标 COS 信息配置及迁移任务相关配置。
vim conf/config.ini中每项有详细解释说明
配置本地数据源 migrateLocal
若从本地迁移至 COS,则进行该部分配置,具体配置项及说明如下:
4、运行迁移工具
Windows
双击 start_migrate.bat 即可运行。
Linux
从config.ini配置文件读入配置,运行命令为:
sh start_migrate.sh
迁移机制原理
COS 迁移工具是有状态的,已经迁移成功的会记录在 db 目录下,以 KV 的形式存储在 leveldb 文件中。每次迁移前对要迁移的路径,先查找下 db 中是否存在, 如果存在,且属性和 db 中存在的一致, 则跳过迁移,否则进行迁移。这里的属性根据迁移类型的不同而不同,对于本地迁移,会判断 mtime。对于其他云存储迁移与 Bucket 复制,会判断源文件的 etag 和长度是否与 db 一致。因此,我们参照 db 中是否有过迁移成功的记录,而不是查找 COS,如果绕过了迁移工具,通过别的方式(如 COSCMD 或者控制台)删除修改了文件,那么运行迁移工具由于不会察觉到这种变化,是不会重新迁移的。
利用脚本实现分月备份
替换备份配置文件中的"月目录"
#!/bin/sh
Date=date |awk ‘{print $6}‘
Path=grep cosPath /data/soft/cos_migrate_tool_v5-master/conf/config.ini |awk -F ‘/‘ ‘{print $3}‘
#PATH=grep cosPath /data/scripts/cos.py |awk -F ‘/‘ ‘{print $3}‘
/usr/bin/sed -i "s/${Path}/${Date}/g" /data/soft/cos_migrate_tool_v5-master/conf/config.ini
crontab
0 1,13 sh /data/script/bak.sh
0 2 sh /data/soft/cos_migrate_tool_v5-master/start_migrate.sh
0 0 1 sh /data/script/cosdate.sh #每月执行一次
原文地址:https://blog.51cto.com/somethingshare/2381099