博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
备份数据上传腾讯云COS
阅读量:6083 次
发布时间:2019-06-20

本文共 1844 字,大约阅读时间需要 6 分钟。

一、方案背景

由于服务器上数据量越来越大,备份的数据会占用硬盘空间(虽说云硬盘可随时扩容,但是存在风险),定时将备份上传到COS。不仅节省服务器硬盘空间,也大大提高备份数据的安全性、可靠性。

二、操作步骤

1、软件依赖:JDK1.7 或以上
下载链接:

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 信息配置及迁移任务相关配置。
备份数据上传腾讯云COS
vim conf/config.ini中每项有详细解释说明
配置本地数据源 migrateLocal
若从本地迁移至 COS,则进行该部分配置,具体配置项及说明如下:
备份数据上传腾讯云COS
备份数据上传腾讯云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

你可能感兴趣的文章
IOS第三方地图-百度地图集成
查看>>
swift学习网站
查看>>
DocumentFragments
查看>>
HTTP-web-Internet
查看>>
【 D3.js 入门系列 — 4 】 如何使用比例尺( scale )
查看>>
Android优化后的定时器代码
查看>>
Html.RenderPartial("")与Html.Partial("")区别
查看>>
poj2524 Ubiquitous Religions(并查集)
查看>>
POJ 1905, Expanding Rods
查看>>
微信内移动前端开发抓包调试工具fiddler使用教程
查看>>
在Windows及Linux下获取毫秒级运行时间的方法
查看>>
【原创】Ubuntu以root用户自动登录
查看>>
JavaScript+IndexedDB实现留言板:客户端存储数据
查看>>
问题:如何在固定大小的DIV层插入N多个图片
查看>>
iOS中使用 Reachability 检测网络
查看>>
访问者模式
查看>>
【Android】13.2 使用自定义的CursorAdapter访问SQLite数据库
查看>>
01-普通轮播图-左右滚动
查看>>
Java Android 注解(Annotation) 及几个常用开源项目注解原理简析
查看>>
2011年中国Android智能手机用户调查研究报告
查看>>