本文共 1844 字,大约阅读时间需要 6 分钟。
一、方案背景
由于服务器上数据量越来越大,备份的数据会占用硬盘空间(虽说云硬盘可随时扩容,但是存在风险),定时将备份上传到COS。不仅节省服务器硬盘空间,也大大提高备份数据的安全性、可靠性。二、操作步骤
1、软件依赖:JDK1.7 或以上下载链接:2、解压缩工具包,或者使用git clone直接克隆到本地
Windows解压并保存到某个目录,例如C:\Users\Administrator\Downloads\cos_migrateLinux解压并保存到某个目录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)以下为从本地迁移、备份到costype 表示迁移类型,用户根据迁移需求填写对应的标识。本地[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/shDate=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.sh0 0 1 sh /data/script/cosdate.sh #每月执行一次转载于:https://blog.51cto.com/somethingshare/2381099