S3存储服务间数据同步工具Rclone迁移教程

目前大多项目我们都会使用各种存储服务,例如oss、cos、minio等。当然,因各种原因,可能需要在不同存储服务间进行数据迁移工作,所以今天就给大家介绍一个比较通用的数据迁移工具Rclone。

Web GUI for rclone rc :https://github.com/retifrav/rclone-rc-web-gui

一、Rclone是什么?

Rclone是一个命令行程序,用于管理云存储上的文件。它是云供应商Web存储界面的功能丰富的替代方案。超过40种云存储产品支持rclone,包括S3对象存储,业务和消费者文件存储服务以及标准传输协议。详细推荐直接官网学习:英文官网、中文网站

二、Rclone能做什么?

    备份(和加密)文件到云存储。
    从云存储还原(和解密)文件。
    将云数据镜像到其他云服务或本地。
    将数据迁移到云,或在云存储供应商之间迁移。
    将多个加密的,缓存的或多样化的云存储作为磁盘挂载。

三、使用步骤

1.安装Rclone

curl https://rclone.org/install.sh | sudo bash

2.生成配置文件

配置可以随便选择,选择完成后重新修改就好了,文章后面会有修改方法。

rclone config

3、查看生成的配置文件

在路径/root/.config/rclone/rclone.conf(rclone.conf为配置文件生成时配置的名称)

cd /root/.config/rclone

4、修改配置文件

vim  /root/.config/rclone/rclone.conf

-配置文件字符串

指定rclone配置文件的位置,以覆盖 默认。例如。rclone config --config="rclone.conf"

由于变化,具体默认设置有点复杂 通过不同版本的 RClone,同时保留 向后兼容,但在大多数情况下很简单:

  • %APPDATA%/rclone/rclone.conf在Windows平台上
  • ~/.config/rclone/rclone.conf在其他方面

完整逻辑如下:Rclone将寻找现有的 配置文件按优先级顺序存放于以下任一位置:

  1. rclone.conf(在程序目录中,rclone 可执行文件所在)
  2. %APPDATA%/rclone/rclone.conf(仅限Windows)
  3. $XDG_CONFIG_HOME/rclone/rclone.conf(适用于所有系统,包括Windows)
  4. ~/.config/rclone/rclone.conf(见下文~符号的解释)
  5. ~/.rclone.conf

修改配置如下,请根据自己服务配置修改部分参数

[minio-zwy]
type = s3
env_auth = false
provider = Minio
region = cn-east-1
access_key_id = minioadmin
secret_access_key = minioadmin
endpoint = http://127.0.0.1:8000
[minio-lin]
type = s3
env_auth = false
provider = Minio
region = cn-east-1
access_key_id = minioadmin
secret_access_key = minioadmin
endpoint = http://127.0.0.99:8000

5、进行数据同步

zwy同步到lin

rclone sync minio-zwy:test minio-lin:test

  或者

lin同步到zwy

rclone sync minio-lin:test minio-zwy:test
rclone sync 源(配置文件名称): 源数据Bucket  目标源名称:目标bucket

6.常见命令

rclone config - 以控制会话的形式添加rclone的配置,配置保存在.rclone.conf文件中。
rclone copy - 将文件从源复制到目的地址,跳过已复制完成的。
rclone sync - 将源数据同步到目的地址,只更新目的地址的数据。
rclone move - 将源数据移动到目的地址。
rclone delete - 删除指定路径下的文件内容。
rclone purge - 清空指定路径下所有文件数据。
rclone mkdir - 创建一个新目录。
rclone rmdir - 删除空目录。
rclone check - 检查源和目的地址数据是否匹配。
rclone ls - 列出指定路径下所有的文件以及文件大小和路径。
rclone lsd - 列出指定路径下所有的目录/容器/桶。
rclone lsl - 列出指定路径下所有文件以及修改时间、文件大小和路径。
rclone md5sum - 为指定路径下的所有文件产生一个md5sum文件。
rclone sha1sum - 为指定路径下的所有文件产生一个sha1sum文件。
rclone size - 获取指定路径下,文件内容的总大小。.
rclone version - 查看当前版本。
rclone cleanup - 清空remote。
rclone dedupe - 交互式查找重复文件,进行删除/重命名操作。

7.常用操作

**rclone lsd:**列出指定path下,所有的目录、容器、桶。
# remote 为配置文件中的[name]
rclone lsd remote:path
rclone copy:将文件从源复制到目的地址,跳过已复制完成的。
# `rclone copy` 复制指定路径下文件
rclone copy source:sourcepath dest:destpath
**rclone sync:**同步的始终是 path 目录下的数据(空目录将不会被同步),而不是 path 目录。同步数据时,可能会删除目的地址的数据;建议先使用–dry-run 标志来检查要复制、删除的数据。同步数据出错时,不会删除任何目的地址的数据。
rclone sync source:path dest:path
**rclone move:**同步数据时,可能会删除目的地址的数据;建议先使用–dry-run 标志来检查要复制、删除的数据。
rclone move source:path dest:path
**rclone purge:**清空 path 目录和数据。
rclone purge remote:path
**rclone mkdir:**创建 path 目录。
rclone mkdir remote:path

总结

以上就是今天介绍的全部内容,这里介绍的rclone sync的方式数据同步不能做到同步过程实时同步,即同步过程中,如果有新的文件上传到已同步完成的文件下,该文件会丢失。

https://rclone.org/docs/

原创文章,作者:奋斗,如若转载,请注明出处:https://blog.ytso.com/notes/318434.html

(0)
上一篇 2025年11月23日 00:32
下一篇 2022年1月23日 17:30

相关推荐

发表回复

登录后才能评论