如何使用rclone将腾讯云COS桶中的数据同步到华为云OBS

在多云策略与数据迁移趋势下,企业往往需要将数据在不同云服务提供商之间进行迁移。本文介绍如何使用rclone工具同步腾讯云COS(Cloud Object Storage)桶中的数据到华为云OBS(Object Storage Service)。先决条件是您已经使用华为云在线迁移工具完成了初始数据迁移,现在我们需要保持后续的数据一致性。

迁移过程如下:

输入源端桶与目的桶的各个配置信息,点击下一步:

这里直接默认,点击下一步:

到这里数据就可以开始同步了!

但是这里要注意账号密钥的权限:

我创建了一个用户组obs-list ,将obs的用户加入,并赋予了OBS Buckets Viewer OBS ReadOnlyAccess 权限(应该赋予OBS ReadOnlyAccess 就可以)

存储桶,桶策略绑定了下面的权限:

其实华为云也有同步任务这个选项可以增量同步,但是看了一眼:

创建一个同步任务



but我源站新建了一个文件没有能在这里看到更新

访问:同步请求接收地址放弃了...

尝试一下rclone吧还是!

什么是rclone?

rclone是一款开源的命令行工具,支持同步文件和目录到多种云存储服务提供商。rclone具有多种特性,包括但不限于复制、同步、迁移、加密等。它支持多种云存储服务,例如Amazon S3, Microsoft OneDrive, Google Drive, Alibaba Cloud OSS, Huawei Cloud OBS以及腾讯云COS等。

开始使用

步骤1:安装rclone

访问rclone官方网站(https://rclone.org/downloads/),下载适合您操作系统的rclone版本并安装。例如,对于Linux系统可以使用以下命令:

bash 复制代码
curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip
unzip rclone-current-linux-amd64.zip
cd rclone-*-linux-amd64
sudo cp rclone /usr/bin/
sudo chown root:root /usr/bin/rclone
sudo chmod 755 /usr/bin/rclone

步骤2:配置rclone

使用rclone配置命令交互式创建新配置。

bash 复制代码
rclone config
添加华为云OBS
  1. 选择"n"新建远程配置。
  1. 输入配置名称,如 HuaweiOBS
  1. 选择存储类型,输入 s3,选择 13
  1. 输入华为云OBS的相关信息,包括区域access_key_idsecret_access_key等。
  1. 访问限制,直接回车,不需要。是否配置高级设置,输入n否.是否保存,输入y保存!
添加腾讯云COS
  1. 同样使用"n"创建新的远程配置。
  1. 输入配置名称,如 TencentCOS
  1. 选择存储类型,选择 s3,选择 13(腾讯云)。
  1. 输入腾讯云TencentCOS的相关信息,包括区域access_key_idsecret_access_key等。
  1. 输入腾讯云COS的相关信息。访问限制,直接回车,不需要。是否配置高级设置,输入n否.是否保存,输入y保存!

步骤3:运行rclone同步命令

使用以下rclone命令将腾讯云COS的数据同步到华为云OBS。请将 TencentCOS:bucket-nameHuaweiOBS:bucket-name 替换为您自己的具体存储桶名称。

bash 复制代码
rclone sync TencentCOS:bucket-name HuaweiOBS:bucket-name --progress
###or
rclone sync -P TencentCOS:bucket-name HuaweiOBS:bucket-name 

--progress 参数可以让您实时看到同步的进度。

步骤4:设置定时任务(可选)

要保持数据持续同步,可以在服务器上设置定时任务。以下是一个示例cron任务,它每天凌晨1点执行数据同步。

打开cron编辑器:

bash 复制代码
crontab -e

添加以下行(确保您已经替换命令中的存储桶名):

复制代码
0 1 * * * rclone sync TencentCOS:bucket-name HuaweiOBS:bucket-name --log-file=/var/log/rclone.log

保存并退出编辑器。

其他注意的:

一些加快速度的参数:

发现了没有同时传输的数量为4!

可以这样修改一下:

  • **调整并发设置 **--transfers: 设置同时进行文件传输的数量,默认通常是4。例如,如果想一次同步16个文件,可以使用 --transfers 16 作为命令参数
bash 复制代码
rclone sync -P TencentCOS:bucket-name HuaweiOBS:bucket-name --transfers 16

恩 发现同步完成后**checking **数量为8?

  • **--checkers**: 设置同时进行检查操作的数量。检查操作是指在上传文件前检查文件是否需要更新。默认值通常是8。增加这个值可以加快检查的速度,但可能会消耗更多的资源
bash 复制代码
rclone sync -P TencentCOS:bucket-name HuaweiOBS:bucket-name  --transfers 16 --checkers 16 
  • 使用 **--fast-list**选项: 使用此选项可以减少S3(或兼容S3)API所需的请求数量,特别是在包含大量文件的目录中。它通过使用更少的请求来获取更多的文件列表信息来实现。
bash 复制代码
rclone sync -P TencentCOS:bucket-name HuaweiOBS:bucket-name  --fast-list
  • 使用 **--size-only** **--checksum** 如果你绕过了修改日期的检查,而只根据文件大小(--size-only)或根据校验和(--checksum)来判断文件是否需要被同步,这可能会减次检查时间。
bash 复制代码
rclone sync -P TencentCOS:bucket-name HuaweiOBS:bucket-name  --size-only

或者

bash 复制代码
rclone sync -P TencentCOS:bucket-name HuaweiOBS:bucket-name  --checksum

rclone sync 与rclone copy

rclone syncrclone copy 都可以对数据进行复制。不同处是copy 是增量复制,只复制目的端缺少的。例如两端数据一样后,源端删除了某个文件a.txt,再执行一次copy,目的端对应的文件a.txt仍然存在;

sync是同步,会将目的端同步为源端的情况,会删除目的端中源端没有的文件。例如两端数据一样后,源端删除了某个文件a.txt,再执行一次sync,目的端对应的文件a.txt也会被删掉。

具体的可以验证一下!

生成配置文件的方式

参照上面配置了rclone config的工作节点:

bash 复制代码
ls /root/.config/rclone

cat rclone.conf:

bash 复制代码
[HuaweiOBS]
type = s3
provider = Other
env_auth = false
access_key_id = xxxxx
secret_access_key = xxxxxxxxxxxxxxxxxxxxx
region = cn-north-4
endpoint = obs.cn-north-4.myhuaweicloud.com

[TencentCOS]
type = s3
provider = Other
env_auth = false
access_key_id = xxxxxxxxxxxxxxxx
secret_access_key = xxxxxxxxxxxxxxx
region = ap-shanghai
endpoint = cos.ap-shanghai.myqcloud.com


步骤2也可以这样生成配置文件,然后继续3 4的操作!

结论

通过以上步骤,您可以轻松地使用rclone将腾讯云COS桶中的数据同步到华为云OBS。确保在执行过程中准确无误地替换了所有必须的配置信息,以保证同步的成功。若您需要进一步的自定义或了解高级功能,请访问rclone的官方文档。

注:以上大纲chatgpt生成,参数 and copy用法以及生成配置文件方式为个人尝试!

相关推荐
好奇的菜鸟2 分钟前
Docker 配置项详解与示例
运维·docker·容器
xcs1940529 分钟前
集运维 麒麟桌面版v10 sp1 2403 aarch64 离线java开发环境自动化安装
运维·自动化
BAOYUCompany32 分钟前
暴雨服务器成功中标华中科技大学集成电路学院服务器采购项目
运维·服务器
超龄超能程序猿1 小时前
Bitvisse SSH Client 安装配置文档
运维·ssh·github
奈斯ing1 小时前
【Redis篇】数据库架构演进中Redis缓存的技术必然性—高并发场景下穿透、击穿、雪崩的体系化解决方案
运维·redis·缓存·数据库架构
鳄鱼皮坡2 小时前
仿muduo库One Thread One Loop式主从Reactor模型实现高并发服务器
运维·服务器
即将头秃的程序媛2 小时前
centos 7.9安装tomcat,并实现开机自启
linux·运维·centos
fangeqin2 小时前
ubuntu源码安装python3.13遇到Could not build the ssl module!解决方法
linux·python·ubuntu·openssl
小Mie不吃饭2 小时前
FastAPI 小白教程:从入门级到实战(源码教程)
运维·服务器
fo安方3 小时前
运维的利器–监控–zabbix–第三步:配置zabbix–中间件–Tomcat–步骤+验证
运维·中间件·zabbix