跳过正文

rclone 跨云对象存储迁移实战:华为云 OBS 到阿里云 OSS

Greatfinish
作者
Greatfinish
记录 Oracle、PostgreSQL、达梦、Linux、存储与生产环境故障处理经验。
AuroraBorealis.png

一、前言
#

这几年,越来越多原本部署在本地机房的系统开始迁移到云上,随之而来的图片、日志、备份包、归档文件等非结构化数据,也越来越多地存放在对象存储中。对象存储容量大、扩展方便、便于通过 API 和工具进行管理,因此在数据备份、恢复、跨云迁移和异地灾备等场景中应用非常广泛。

在实际工作中,很多场景并不是简单的“把文件传上云”这么单一,而是涉及本地到云、云到本地、云到云之间的数据复制、迁移、增量同步和一致性校验。特别是在多云环境下,如何选择一个统一、稳定、便于自动化的工具,往往直接影响迁移效率和实施成本。

rclone 就是在这类场景中非常实用的一款工具。它支持多种对象存储和云存储协议,命令风格统一,既适合日常文件管理,也适合批量迁移和脚本化运维。本文将从 rclone 是什么、能做什么、如何安装配置以及基本命令使用等方面进行介绍,最后结合华为云 OBS 迁移到阿里云 OSS 的案例,演示一个常见的跨云对象存储迁移流程。

二、rclone 是什么
#

rclone 是一个命令行工具,用来管理云存储上的文件。官方把它定位为云厂商网页存储界面的增强替代品,支持 70 多种云存储、对象存储和传输协议,包括 S3 兼容对象存储、Google Drive、OneDrive、FTP、SFTP、WebDAV 等。它提供类似 rsynccpmvlsmountrm 的云端版本命令,并支持脚本化、API 调用、校验和验证、断点续传/重试、加密、挂载等能力。

rclone 官方主页明确列出了阿里云 OSS 和华为云 OBS 都在支持列表里;OBS 在 rclone 中通过 S3 backend 的 HuaweiOBS provider 配置,OSS 则通过 S3 backend 的 Alibaba provider 配置。

三、rclone 能干什么
#

在实际使用中,rclone 主要有以下几类典型用途:把本地文件备份到云上、从云上恢复文件、云到云迁移、把多个云盘或对象存储挂载成磁盘、做对象清单/容量分析、以及对数据做加密后再传输。官方还强调它会尽量保留时间戳、校验哈希,支持 check 做完整性校验,并且在条件允许时可进行 provider-to-provider 传输而不落本地磁盘。

在跨云对象存储迁移场景中,rclone 具有较好的适配性,因为它同时支持华为 OBS 和阿里 OSS,而且命令风格统一,迁移、校验、增量同步都能用同一套工具完成。

四、适用于什么场景
#

rclone 常见的应用场景包括:

  • 对象存储迁移:例如 OBS → OSS、OSS → S3、S3 → MinIO。
  • 备份与归档:把服务器目录定时备份到对象存储,或者把对象存储再复制一份到另一个云。
  • 灾备与多云:一个桶作为生产,一个桶作为异地/异云备份。
  • 校验与巡检:迁移后用 rclone check 比较源和目标的大小与哈希。
  • 脚本自动化:Shell、PowerShell、定时任务、CI/CD 都能调用。

五、如何安装
#

5.1 Linux / macOS / BSD
#

官方推荐的简便方式是安装脚本:

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

如果你想装 beta 版:

sudo -v ; curl https://rclone.org/install.sh | sudo bash -s beta

安装脚本会先检查当前版本,若已满足条件则不会重复下载。

Linux 也可以直接下预编译包再手动复制到 /usr/bin/

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

装完后官方建议直接执行 rclone config 开始配置。

5.2 Windows
#

Windows 可以直接下载预编译 rclone.exe,也可以用包管理器安装:

winget install Rclone.Rclone

或:

choco install rclone

如果你后面要用 rclone mount,官方说明 Windows 还需要安装 WinFsp。

5.3 安装后的检查
#

rclone version

六、如何配置和基本使用
#

6.1 配置入口
#

rclone 的配置文件保存各种 remote 的认证信息。最常见的配置入口是:

rclone config

配置文件默认通常在:

  • Windows:%APPDATA%/rclone/rclone.conf
  • Linux/macOS:~/.config/rclone/rclone.conf

也可以用下面命令查看当前实际路径:

rclone config file

如果想先创建一个空配置文件,可以执行:

rclone config touch

这些都来自官方 usage 文档。

6.2 配置文件安全
#

需要注意的是,rclone.conf 中保存着云存储认证信息,应妥善保管。你可以在 rclone config 里选择 s) Set configuration password 给整个配置文件加密。

6.3 remote 路径语法
#

rclone 最重要的路径格式是:

  • 本地目录:/path/to/dir
  • 远端目录:remote:path/to/dir

也就是说,如果你配置了一个名叫 obs-src 的 remote,那么 obs-src:bucket-name/path 就表示这个 remote 下的某个桶和路径。官方也说明大多数 backend 推荐用 remote:path/to/dir 这种格式。

6.4 基本命令
#

官方 usage 文档给的基础例子是:

rclone ls remote:path
rclone copy /local/path remote:path
rclone sync --interactive /local/path remote:path

其中最常用的几个命令,可以这样理解:ls 用来列对象,copy 用来复制新增或变化的文件但不删除目标端已有文件sync 会把目标端改成和源端一致,必要时会删除目标端多余文件

你可以先记住这几个高频命令:

rclone listremotes                 # 看已配置的 remote
rclone lsd obs-src:                # 列出 remote 下的桶/目录
rclone ls obs-src:mybucket/path    # 列出对象
rclone size obs-src:mybucket/path  # 看对象数和总大小
rclone copy SRC DST -P             # 复制,不删目标
rclone sync SRC DST --dry-run      # 先演练同步
rclone check SRC DST               # 校验源目标是否一致

copy 官方支持 -P/--progress 显示实时进度,也支持 --dry-run 先演练;sync 官方特别提示因为可能造成数据丢失,应该先用 --dry-run--interactive 测试;check 会比较大小和哈希,并且不会修改源或目标。

七、实战案例:华为云 OBS 迁移到阿里云 OSS
#

以下结合实际场景,介绍一套常见的迁移实施方法。

7.1 迁移前准备
#

你需要准备:

  1. 华为云 OBS 的 access_key_idsecret_access_key
  2. 阿里云 OSS 的 access_key_idsecret_access_key
  3. 源桶名称、目标桶名称
  4. 两边桶所在区域对应的 endpoint
  5. 一台运行 rclone 的中转主机,这里我们准备一台linux虚拟机

rclone 官方说明它在条件允许时可做 provider-to-provider 传输而不落本地磁盘;但对于 OBS → OSS 这类跨云迁移,实际执行时我建议你仍按“数据会经过运行 rclone 的这台机器”来规划带宽、网络位置和运行时长,这样更稳妥。

华为云对象存储.png
阿里云对象存储.png
厂商桶名称目录Endpoint(终端节点)access_key_idsecret_access_key
华为云 OBSmy-obs-bucket-sypath-prefixobs.cn-east-3.myhuaweicloud.comHPUA05SZWCS1A5H5I6SO******
阿里云 OSSmy-oss-bucket-sypath-prefixoss-cn-shanghai.aliyuncs.comLTAI5tK6ihgas6mDGw7c7Wrv******

7.2 中转主机上安装rclone
#

在rclone 的中转主机上安装

[root@rockylinux9 ~]# curl -O https://downloads.rclone.org/rclone-current-linux-amd64.zip
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 26.8M  100 26.8M    0     0  7989k      0  0:00:03  0:00:03 --:--:-- 7989k
[root@rockylinux9 ~]# unzip rclone-current-linux-amd64.zip 
Archive:  rclone-current-linux-amd64.zip
   creating: rclone-v1.73.3-linux-amd64/
  inflating: rclone-v1.73.3-linux-amd64/rclone.1  
  inflating: rclone-v1.73.3-linux-amd64/README.html  
  inflating: rclone-v1.73.3-linux-amd64/rclone  
  inflating: rclone-v1.73.3-linux-amd64/git-log.txt  
  inflating: rclone-v1.73.3-linux-amd64/README.txt  
[root@rockylinux9 ~]# cd rclone-v1.73.3-linux-amd64/
[root@rockylinux9 rclone-v1.73.3-linux-amd64]# ll
总用量 83844
-rw-r--r-- 1 root root     4628  3月 24 02:51 git-log.txt
-rwxr-xr-x 1 root root 76480696  3月 24 02:56 rclone
-rw-r--r-- 1 root root  3043385  3月 24 02:34 rclone.1
-rw-r--r-- 1 root root  3549157  3月 24 02:34 README.html
-rw-r--r-- 1 root root  2763817  3月 24 02:34 README.txt
[root@rockylinux9 rclone-v1.73.3-linux-amd64]# sudo cp rclone /usr/bin/
[root@rockylinux9 rclone-v1.73.3-linux-amd64]# sudo chown root:root /usr/bin/rclone
[root@rockylinux9 rclone-v1.73.3-linux-amd64]# sudo chmod 755 /usr/bin/rclone
[root@rockylinux9 rclone-v1.73.3-linux-amd64]# cd ~
[root@rockylinux9 ~]# rclone version
rclone v1.73.3
- os/version: rocky 9.7 (64 bit)
- os/kernel: 5.14.0-611.5.1.el9_7.x86_64 (x86_64)
- os/type: linux
- os/arch: amd64
- go/version: go1.25.8
- go/linking: static
- go/tags: none
[root@rockylinux9 ~]# 

建议的 remote 命名

源端:obs-src

目标端:oss-dst

7.3 配置华为云 OBS
#

首先创建一个空配置文件

[root@rockylinux9 ~]# rclone config file
Configuration file doesn't exist, but rclone will use this path:
/root/.config/rclone/rclone.conf
[root@rockylinux9 ~]# rclone config touch
2026/03/25 22:28:09 NOTICE: Config file "/root/.config/rclone/rclone.conf" not found - using defaults
[root@rockylinux9 ~]# ls -l /root/.config/rclone/rclone.conf
-rw------- 1 root root 0  3月 25 22:28 /root/.config/rclone/rclone.conf
[root@rockylinux9 ~]# 

官方给出的 OBS 配置形式是:

[obs]
type = s3
provider = HuaweiOBS
access_key_id = your-access-key-id
secret_access_key = your-secret-access-key
region = af-south-1
endpoint = obs.af-south-1.myhuaweicloud.com
acl = private

而且官方列出了华为 OBS 的 provider 名就是 HuaweiOBS,region/endpoint 要按你的区域替换,例如文档中可见:

  • cn-east-3obs.cn-east-3.myhuaweicloud.com
  • cn-east-2obs.cn-east-2.myhuaweicloud.com
  • cn-north-1obs.cn-north-1.myhuaweicloud.com
  • cn-north-4obs.cn-north-4.myhuaweicloud.com
  • cn-south-1obs.cn-south-1.myhuaweicloud.com
  • ap-southeast-1obs.ap-southeast-1.myhuaweicloud.com

所以你可以直接写成例如华东-上海一 的配置如下:

[root@rockylinux9 ~]# vi /root/.config/rclone/rclone.conf
[root@rockylinux9 ~]# cat /root/.config/rclone/rclone.conf 
[obs-src]
type = s3
provider = HuaweiOBS
access_key_id = HPUA05SZWCS1A5H5I6SO
secret_access_key = ******
region = cn-east-3
endpoint = obs.cn-east-3.myhuaweicloud.com
acl = private


[root@rockylinux9 ~]# 

验证配置是否成功

[root@rockylinux9 ~]# rclone listremotes
obs-src:
[root@rockylinux9 ~]# rclone lsd obs-src:
          -1 2026-03-25 21:23:23        -1 my-obs-bucket-sy
[root@rockylinux9 ~]# rclone ls obs-src:my-obs-bucket-sy
[root@rockylinux9 ~]# 

上传3个本地测试文件到华为云桶里

[root@rockylinux9 ~]# ll
总用量 32032
-rw-------. 1 root root     1328  3月 22 21:42 anaconda-ks.cfg
-rw-r--r--  1 root root  1767897  3月 25 22:41 day-01.png
-rw-r--r--  1 root root  2833397  3月 25 22:41 day-02.png
-rw-r--r--  1 root root     6554  3月 25 22:42 Oracle备份恢复技术实践.md
-rw-r--r--  1 root root 28184295  3月 25 21:54 rclone-current-linux-amd64.zip
drwxr-xr-x  2 root root       92  3月 24 02:56 rclone-v1.73.3-linux-amd64
[root@rockylinux9 ~]# rclone copy /root/day-01.png obs-src:my-obs-bucket-sy/path-prefix
[root@rockylinux9 ~]# rclone copy /root/day-02.png obs-src:my-obs-bucket-sy/path-prefix
[root@rockylinux9 ~]# rclone copy /root/Oracle备份恢复技术实践.md obs-src:my-obs-bucket-sy/path-prefix
[root@rockylinux9 ~]# rclone size obs-src:my-obs-bucket-sy/path-prefix
Total objects: 3
Total size: 4.394 MiB (4607848 Byte)
[root@rockylinux9 ~]# rclone ls obs-src:my-obs-bucket-sy/path-prefix
     6554 Oracle备份恢复技术实践.md
  1767897 day-01.png
  2833397 day-02.png
[root@rockylinux9 ~]# 

7.4 配置阿里云 OSS
#

官方给出的 OSS 配置方式是 S3 backend + provider = Alibaba。文档示例中的 remote 最终如下:

[oss]
type = s3
provider = Alibaba
env_auth = false
access_key_id = accesskeyid
secret_access_key = secretaccesskey
endpoint = oss-cn-hangzhou.aliyuncs.com
acl = private
storage_class = Standard

rclone 文档里也列了多个阿里云 endpoint,例如:

  • oss-cn-hangzhou.aliyuncs.com
  • oss-cn-shanghai.aliyuncs.com
  • oss-cn-qingdao.aliyuncs.com
  • oss-cn-beijing.aliyuncs.com
  • oss-cn-shenzhen.aliyuncs.com
  • oss-cn-guangzhou.aliyuncs.com
  • oss-cn-hongkong.aliyuncs.com

所以你可以按实际目标区域华东2-(上海)写成:

[root@rockylinux9 ~]# vi /root/.config/rclone/rclone.conf
[root@rockylinux9 ~]# cat /root/.config/rclone/rclone.conf 
[obs-src]
type = s3
provider = HuaweiOBS
access_key_id = HPUA05SZWCS1A5H5I6SO
secret_access_key = ******
region = cn-east-3
endpoint = obs.cn-east-3.myhuaweicloud.com
acl = private


[oss-dst]
type = s3
provider = Alibaba
env_auth = false
access_key_id = LTAI5tK6ihgas6mDGw7c7Wrv
secret_access_key = ******
endpoint = oss-cn-shanghai.aliyuncs.com
acl = private


[root@rockylinux9 ~]# 

如果目标桶已经提前建好,而你的账号没有建桶权限,可以在对应 remote 里加:

no_check_bucket = true

因为官方说明这个参数可以让 rclone 不去检查或创建 bucket,在已知桶存在、或账号无建桶权限时会有用。

7.5 先检查 remote 是否通
#

先看 remote 有没有配置成功:

[root@rockylinux9 ~]# rclone listremotes
obs-src:
oss-dst:
[root@rockylinux9 ~]# 

再分别列桶:

[root@rockylinux9 ~]# rclone lsd obs-src:
          -1 2026-03-25 21:23:23        -1 my-obs-bucket-sy
[root@rockylinux9 ~]# rclone lsd oss-dst:
          -1 2026-03-25 21:33:50        -1 my-oss-bucket-sy
[root@rockylinux9 ~]# 

然后确认源路径大小:

[root@rockylinux9 ~]# rclone size obs-src:my-obs-bucket-sy/path-prefix
Total objects: 3
Total size: 4.394 MiB (4607848 Byte)
[root@rockylinux9 ~]# rclone size oss-dst:my-oss-bucket-sy/path-prefix
Total objects: 0
Total size: 0 B (0 Byte)
[root@rockylinux9 ~]# 

这些用法都符合官方的 subcommands 和 remote:path 语法。

7.6 正式迁移:先 dry-run,再 copy
#

我的建议是:第一次迁移先用 copy,不要一上来用 sync。因为 copy 不会删目标端已有对象,而 sync 会把目标端改成与源一致,存在删除风险。官方也是这么定义这两个命令的。

先演练:

rclone copy obs-src:my-obs-bucket-sy/path-prefix oss-dst:my-oss-bucket-sy/path-prefix --dry-run -P

[root@rockylinux9 ~]# rclone copy obs-src:my-obs-bucket-sy/path-prefix oss-dst:my-oss-bucket-sy/path-prefix --dry-run -P
2026/03/25 22:57:44 NOTICE: Oracle备份恢复技术实践.md: Skipped copy as --dry-run is set (size 6.400Ki)
2026/03/25 22:57:44 NOTICE: day-01.png: Skipped copy as --dry-run is set (size 1.686Mi)
2026/03/25 22:57:44 NOTICE: day-02.png: Skipped copy as --dry-run is set (size 2.702Mi)
Transferred:   	    4.394 MiB / 4.394 MiB, 100%, 0 B/s, ETA -
Checks:                 0 / 0, -, Listed 3
Transferred:            3 / 3, 100%
Elapsed time:         0.0s
2026/03/25 22:57:44 NOTICE: 
Transferred:   	    4.394 MiB / 4.394 MiB, 100%, 0 B/s, ETA -
Checks:                 0 / 0, -, Listed 3
Transferred:            3 / 3, 100%
Elapsed time:         0.0s

[root@rockylinux9 ~]# 

确认没问题后正式执行:

rclone copy obs-src:my-obs-bucket-sy/path-prefix oss-dst:my-oss-bucket-sy/path-prefix -P --log-file ./rclone-obs2oss.log --log-level INFO

[root@rockylinux9 ~]# rclone copy obs-src:my-obs-bucket-sy/path-prefix oss-dst:my-oss-bucket-sy/path-prefix -P --log-file ./rclone-obs2oss.log --log-level INFO
Transferred:   	    4.394 MiB / 4.394 MiB, 100%, 0 B/s, ETA -
Checks:                 0 / 0, -, Listed 3
Transferred:            3 / 3, 100%
Elapsed time:         0.4s
[root@rockylinux9 ~]# cat ./rclone-obs2oss.log
2026/03/25 23:08:41 INFO  : Oracle备份恢复技术实践.md: Copied (new)
2026/03/25 23:08:41 INFO  : day-02.png: Copied (new)
2026/03/25 23:08:41 INFO  : day-01.png: Copied (new)
2026/03/25 23:08:41 INFO  : 
Transferred:   	    4.394 MiB / 4.394 MiB, 100%, 0 B/s, ETA -
Checks:                 0 / 0, -, Listed 3
Transferred:            3 / 3, 100%
Elapsed time:         0.4s

[root@rockylinux9 ~]# 

如果你要迁整个桶根目录,就把 path-prefix 去掉:

rclone copy obs-src:my-obs-bucket-sy oss-dst:my-oss-bucket-sy -P --log-file ./rclone-obs2oss.log --log-level INFO

官方文档强调:copy 复制的是目录内容,不是把源目录名再包一层复制过去。

7.7 迁移后校验
#

最稳妥的方式是迁完后做 check

rclone check obs-src:my-obs-bucket-sy/path-prefix oss-dst:my-oss-bucket-sy/path-prefix

[root@rockylinux9 ~]# rclone check obs-src:my-obs-bucket-sy/path-prefix oss-dst:my-oss-bucket-sy/path-prefix
2026/03/25 23:11:12 NOTICE: S3 bucket my-oss-bucket-sy path path-prefix: 0 differences found
2026/03/25 23:11:12 NOTICE: S3 bucket my-oss-bucket-sy path path-prefix: 3 matching files
[root@rockylinux9 ~]# 

如果你只想快速看大小是否一致,可以先:

rclone check obs-src:my-obs-bucket-sy/path-prefix oss-dst:my-oss-bucket-sy/path-prefix --size-only

[root@rockylinux9 ~]# rclone check obs-src:my-obs-bucket-sy/path-prefix oss-dst:my-oss-bucket-sy/path-prefix --size-only
2026/03/25 23:11:57 NOTICE: S3 bucket my-oss-bucket-sy path path-prefix: 0 differences found
2026/03/25 23:11:57 NOTICE: S3 bucket my-oss-bucket-sy path path-prefix: 3 matching files
[root@rockylinux9 ~]# 

官方说明 check 会比较大小和哈希,记录差异,而且不会修改源或目标。

7.8 后续增量同步
#

在华为云上先增加一个文件day-03.png,同时修改一个文件Oracle备份恢复技术实践.md 。

[root@rockylinux9 ~]# echo "孙莹测试修改文件" >> Oracle备份恢复技术实践.md 
[root@rockylinux9 ~]# ll
总用量 32052
-rw-------. 1 root root     1328  3月 22 21:42 anaconda-ks.cfg
-rw-r--r--  1 root root  1767897  3月 25 22:41 day-01.png
-rw-r--r--  1 root root  2833397  3月 25 22:41 day-02.png
-rw-r--r--  1 root root    14007  3月 25 23:14 day-03.png
-rw-r--r--  1 root root     6601  3月 25 23:15 Oracle备份恢复技术实践.md
-rw-r--r--  1 root root 28184295  3月 25 21:54 rclone-current-linux-amd64.zip
-rw-r-----  1 root root     1585  3月 25 23:08 rclone-obs2oss.log
drwxr-xr-x  2 root root       92  3月 24 02:56 rclone-v1.73.3-linux-amd64
[root@rockylinux9 ~]# rclone copy /root/day-03.png obs-src:my-obs-bucket-sy/path-prefix
[root@rockylinux9 ~]# rclone copy /root/Oracle备份恢复技术实践.md obs-src:my-obs-bucket-sy/path-prefix
[root@rockylinux9 ~]# rclone ls obs-src:my-obs-bucket-sy/path-prefix
     6601 Oracle备份恢复技术实践.md
  1767897 day-01.png
  2833397 day-02.png
    14007 day-03.png
[root@rockylinux9 ~]# 

首轮全量迁移结束后,后面如果只是做补差,可以继续用:

# 增量复制,不删目标
rclone copy obs-src:my-obs-bucket-sy/path-prefix oss-dst:my-oss-bucket-sy/path-prefix -P --log-file ./rclone-obs2oss.log --log-level INFO

[root@rockylinux9 ~]# rclone copy obs-src:my-obs-bucket-sy/path-prefix oss-dst:my-oss-bucket-sy/path-prefix -P --log-file ./rclone-obs2oss.log --log-level INFO
Transferred:   	   20.125 KiB / 20.125 KiB, 100%, 0 B/s, ETA -
Checks:                 3 / 3, 100%, Listed 7
Transferred:            2 / 2, 100%
Elapsed time:         0.1s
[root@rockylinux9 ~]# cat ./rclone-obs2oss.log 
2026/03/25 23:08:41 INFO  : Oracle备份恢复技术实践.md: Copied (new)
2026/03/25 23:08:41 INFO  : day-02.png: Copied (new)
2026/03/25 23:08:41 INFO  : day-01.png: Copied (new)
2026/03/25 23:08:41 INFO  : 
Transferred:   	    4.394 MiB / 4.394 MiB, 100%, 0 B/s, ETA -
Checks:                 0 / 0, -, Listed 3
Transferred:            3 / 3, 100%
Elapsed time:         0.4s

2026/03/25 23:22:51 INFO  : day-03.png: Copied (new)
2026/03/25 23:22:51 INFO  : Oracle备份恢复技术实践.md: Copied (replaced existing)
2026/03/25 23:22:51 INFO  : 
Transferred:   	   20.125 KiB / 20.125 KiB, 100%, 0 B/s, ETA -
Checks:                 3 / 3, 100%, Listed 7
Transferred:            2 / 2, 100%
Elapsed time:         0.1s

[root@rockylinux9 ~]# 

只有当你明确希望“目标端完全镜像源端,并删除目标端多余对象”时,才考虑:

# 严格同步,会删目标多余文件
rclone sync obs-src:my-obs-bucket-sy/path-prefix oss-dst:my-oss-bucket-sy/path-prefix --dry-run

确认演练结果无误后,再去掉 --dry-run。因为官方明确写了 sync 会删除目标端多余内容。

7.9 落地建议
#

在生产环境实施时,建议按以下顺序进行:

  1. 安装 rclone,跑 rclone version
  2. 执行 rclone config
  3. 配好 obs-srcoss-dst
  4. rclone lsd / rclone size 验证源目标可访问
  5. rclone copy --dry-run 演练
  6. 正式 rclone copy
  7. rclone check 校验
  8. 后续需要补差时继续 copy
  9. 只有明确要做镜像删除时才用 sync

八、总结
#

rclone 是一款轻量、通用且非常适合脚本化运维的云存储管理工具。对于对象存储场景而言,它不仅能够完成本地到云、云到本地的数据传输,也能够胜任云到云之间的跨平台迁移、增量同步和一致性校验等工作。尤其在多云环境下,rclone 通过统一的命令体系屏蔽了不同云厂商之间的部分接口差异,能够有效降低迁移和运维的复杂度。

本文从 rclone 的基本概念、适用场景、安装方式、配置方法和常用命令入手,结合华为云 OBS 迁移到阿里云 OSS 的实战案例,演示了一套较为完整的跨云对象存储迁移流程。通过实际操作可以看到,在完成 remote 配置、连通性验证、迁移演练、正式复制和结果校验之后,rclone 可以较为高效地完成对象迁移任务;而在后续业务持续变化的情况下,也可以继续使用 copy 实现增量补传,或在严格镜像场景下使用 sync 做全量一致性同步。

在实际生产环境中,建议始终遵循“先验证、再演练、后执行、最后校验”的原则:先确认源端和目标端均可正常访问,再通过 --dry-run 预演迁移动作,正式执行后结合日志和 rclone check 做结果核对。这样既能够提高迁移过程的可控性,也能够最大程度降低误操作和数据不一致带来的风险。

总体来看,rclone 非常适合作为对象存储迁移、备份、同步和灾备场景中的基础工具。对于需要在不同云厂商对象存储之间进行数据流转的运维人员和实施人员来说,熟练掌握 rclone 的配置方法和常用命令,将会显著提升日常工作的效率和稳定性。