Rclone: 云存储界的瑞士军刀
Made by Mike_Zhang
许多用户把
rclone称为 “云存储界的瑞士军刀”。
简单来说,rclone 把 Google Drive、Dropbox、OneDrive等一堆云盘存储后端,统一成了一个命令行文件系统。
Intro
导言
在服务器上处理数据时,经常会遇到一个很现实的问题:
- 本地电脑和服务器之间传几十 GB、几百 GB 的文件,
scp断了很烦; - 实验数据需要备份,但服务器磁盘又不够大;
- 两台服务器不在同一个内网,直接互传速度很差;
- Google Drive / Dropbox / OneDrive 有空间,但服务器上没有图形界面;
- 有时只想把云端文件夹当成一个本地目录来读写。
这些问题本质上都是一句话:
如何在命令行里,把自己的云端网盘空间变成服务器可用的存储工具?
我认为 rclone 就是一个很优雅的答案。它不是一个网盘客户端 GUI,也不是某一家云厂商的同步软件,而是一个可以在命令行和脚本里使用的 cloud storage toolkit。
1. What is rclone
1. rclone 是什么
rclone 是一个用于管理 cloud storage 文件的 command-line program。官方文档把它描述为 cloud vendors’ web storage interfaces 的功能丰富替代品,也就是说:
- 你不需要打开网页上传下载;
- 不需要在服务器上装 Google Drive / Dropbox / OneDrive 的桌面客户端;
- 不需要为不同网盘记不同命令;
- 只要通过
rclone config配置好 remote,就可以用统一的命令操作它们。
rclone 的语法和 Unix 工具很像。你可以把它理解成云端版的 cp、rsync、mv、ls、mount:
1 | |
这里的 gdrive: 就是一个 remote,也就是你在 rclone config 里配置好的云端存储。
2. Why rclone
2. 为什么服务器上很适合用 rclone
rclone 最吸引我的地方不是“它能上传文件”,而是它把服务器、个人电脑、云端网盘、对象存储这些原本分散的地方,用一套统一命令连接起来。
它能做的事情可以先这样理解:
- 大文件上传/下载:服务器和 Google Drive / Dropbox / OneDrive 之间直接传文件;
- 云端备份:把项目目录同步到云端,并可用
--dry-run先预演; - 跨机器传输:先从 Server A 上传云端,再从 Server B 下载;
- 网盘间迁移:在 Google Drive、OneDrive、Dropbox、S3 等 remote 之间搬数据;
- 云端挂载:把 remote mount 成
~/mnt/gdrive这样的本地目录。
flowchart LR
S["服务器 / 本地电脑"] -->|上传大文件| C["云端网盘 Remote"]
C -->|下载 / 恢复| S
S -->|备份同步| B["Cloud Backup"]
C -->|挂载| M["本地目录 ~/mnt/cloud"]
跨机器和跨网盘场景也很直观:
flowchart LR
A["Server A"] -->|upload| C["Cloud Remote"]
C -->|download| D["Server B"]
G["Google Drive"] -->|copy / sync| R["rclone 所在机器"]
R --> O["OneDrive / Dropbox / S3"]
所以,rclone 更像一个服务器上的 storage adapter。它不只是在“上传网盘”,而是在帮你把 cloud storage 变成可以写进 shell script、cron job、backup workflow 的基础工具。
3. Installation
3. 安装
官网链接:rclone Install
Linux / macOS / BSD 可以使用官方安装脚本:
1 | |
macOS 也可以用 Homebrew:
1 | |
不过如果你需要在 macOS 上使用 rclone mount,官方文档提醒 Homebrew 版本不再支持 mount,这时更推荐使用官方 precompiled binary。
安装后检查版本:
1 | |
4. Connect Your Cloud Drive
4. 连接自己的网盘
官网链接:Configure rclone
rclone 的第一步是配置 remote:
1 | |
进入交互式配置后:
(建议参考Configure rclone来配置不同类型的网盘)
- 选择
n新建 remote; - 给 remote 起名,例如
gdrive、dropbox、onedrive; - 选择 storage type,例如
drive、dropbox、onedrive; - 按提示完成 OAuth 授权;
- 保存配置。
配置完成后可以检查:
1 | |
其中 about 用于查看 quota / usage 信息,但不是所有 backend 都支持;如果某个 remote 不支持,可以跳过这一步。
以后路径就写成:
1 | |
例如:
1 | |
5. Headless Server
5. 没有浏览器的服务器如何授权
官网链接:Configuring rclone on a remote / headless machine
很多服务器没有桌面环境,也不能直接打开浏览器。这时有两种常用方式。
5.1 Method 1 - rclone authorize
在本地浏览器授权,再粘贴 token
On remote server:
1 | |
当它问你是否使用浏览器自动授权时,选择 n:
1 | |
然后它会提示你在一台有浏览器的机器上运行类似命令:
1 | |
On your local computer:
1 | |
完成网页授权后,本地会输出一段 token。复制它,回到服务器粘贴即可。
5.2 Method 2 - Copy config file
直接复制配置文件
你也可以先在本地电脑配置好 remote,然后查看配置文件位置:
1 | |
再把这个 config file 复制到服务器对应位置。这个方法简单,但要注意:有些 backend 不支持直接复用同一份配置,因此大规模迁移前最好先用小目录测试。
rclone.conf里可能包含 access token。请把它当作密码文件对待,不要上传到 GitHub,不要随便发给别人。
6. Common Commands
6. 常用命令
官网链接:Basic syntax / Subcommands
6.1 List files
列出云端文件
官网链接:rclone ls, rclone lsd, rclone tree
1 | |
6.2 Copy
复制,不删除 destination
官网链接:rclone copy
1 | |
注意:当 source 是目录时,rclone copy 复制的是这个目录里的内容,而不是把目录名本身再复制一层。所以如果你想让云端目录叫 project,destination 也要写到 .../project。
copy 适合:
- 上传新文件;
- 下载数据;
- 多台机器往同一个 backup folder 追加文件;
- 不希望误删云端已有内容的场景。
6.3 Sync
同步,使 destination 匹配 source
官网链接:rclone sync
1 | |
sync 适合:
- 做镜像备份;
- 让云端和本地保持一致;
- 从旧网盘迁移到新网盘。
但它也最危险,因为它会修改 destination,并可能删除 destination 中 source 没有的文件。
6.4 Move
移动,传完后删除 source
官网链接:rclone move
1 | |
move 适合本地磁盘快满、确认云端保存成功后释放空间的场景。但第一次用时我建议先用 copy,确认无误后再手动删除本地文件。
6.5 Check
检查两边是否一致
官网链接:rclone check
1 | |
check 会比较 source 和 destination,报告缺失或不匹配的文件。对于重要备份,传完后跑一次 check 会安心很多。
7. Backup Recipes
7. 备份实践
官网链接:rclone copy, rclone sync, rclone check
备份的核心不是“复制一次”,而是可以重复、安全、自动地更新。我的习惯是把 copy 和 sync 分开理解:
copy:只复制新增或变化的文件,不会删除 destination 里已有但 source 没有的文件,适合上传、下载、追加式备份;sync:让 destination 和 source 保持一致,可能删除 destination 里多出来的文件,适合镜像备份;check:传完后检查两边文件是否一致,重要数据建议跑一次。
7.1 Upload / Download large files
大文件上传/下载
在服务器上训练模型、处理测序数据、跑仿真、整理视频素材时,文件经常不是几十 MB,而是几十 GB 起步。rclone copy 可以把本地文件或目录复制到云端,也可以反过来从云端下载到服务器:
1 | |
其中 -P / --progress 会显示实时进度,对于大文件非常重要。
7.2 One project backup
单个项目备份
第一次写 sync 命令时,建议先加 --dry-run,确认不会误删目标端文件后再正式执行:
1 | |
如果你只是想“追加上传,不删除云端已有文件”,用 copy 更稳:
1 | |
7.3 Keep a current backup
维护一个 current 版本
1 | |
这个适合“云端永远保持最新”的备份。
7.4 Keep snapshots
保留多个时间点
1 | |
这个适合“我不想旧版本被覆盖”的备份。缺点是占空间更快。
7.5 Cron automation
定时备份
可以把命令写进 shell script,然后用 crontab 定时运行:
1 | |
我的建议是:自动化之前,先手动跑通 --dry-run 和一次正式备份。
8. Transfer Recipes
8. 传输实践
官网链接:rclone copy, rclone sync, Server-side copy
8.1 Server to laptop
服务器传到本地电脑
On server:
1 | |
On laptop:
1 | |
8.2 Server A to Server B
服务器 A 传到服务器 B
有时两台服务器之间不能直连,或者跨学校、跨机房、跨云厂商,直连速度不稳定。这时可以把网盘当作中转站。
On Server A:
1 | |
On Server B:
1 | |
这种方式很朴素,但非常实用。尤其是你已经有 Google Drive / OneDrive 的大容量教育账户,或者 Dropbox / S3 / B2 这种稳定存储时,它可以临时承担一个 data relay 的角色。
8.3 Google Drive to OneDrive
Google Drive 迁移到 OneDrive
1 | |
如果是最终迁移,目标端需要和源端完全一致:
1 | |
这里有一个重要 caveat:
跨云迁移不一定是“云端内部直接搬运”。在不同 remote names 或不同 providers 之间迁移时,数据通常会经过运行
rclone的那台服务器下载再上传,所以服务器网络带宽仍然很重要。
同一个 remote 内部如果 backend 支持 server-side copy,rclone 才可能让服务端直接复制;不要默认所有网盘之间都是零本地流量迁移。
9. Mount Recipes
9. 挂载实践
官网链接:rclone mount
9.1 Basic mount
基础挂载
rclone mount 依赖 FUSE 类机制。Linux 通常需要系统支持 FUSE;macOS 可使用 macFUSE / FUSE-T / NFS mount;Windows 则需要额外安装 WinFsp。
1 | |
测试:
1 | |
卸载:
1 | |
9.2 Mount a subfolder
只挂载某个云端子目录
1 | |
这样可以避免把整个网盘暴露为一个大目录,也更清晰。
9.3 When not to mount
什么时候不建议 mount
如果你要做的是:
- 大量小文件的高速读写;
- 训练过程频繁随机读取数据;
- 长时间、大规模迁移;
- 严肃备份。
我会优先选择 copy / sync,而不是 mount。Mount 很方便,但它不是本地 SSD。
10. Caveats
10. 注意事项
10.1 sync can delete files
sync 的目标是让 destination 变得和 source 一样。因此 destination 里 source 没有的文件可能会被删除。
1 | |
先 dry run,再正式同步。
10.2 Cloud-to-cloud still needs bandwidth
Google Drive 到 OneDrive、Dropbox 到 S3 这种跨 provider 迁移,很多时候会经过运行 rclone 的服务器。服务器不一定存一份完整本地副本,但网络流量和上传下载速度仍然会成为瓶颈。
10.3 Cloud storage is not rsync binary diff
rclone 对云端对象做的是 file/object 级别同步。也就是说,如果一个很大的文件内容变了,它通常需要重新传这个文件,而不是只传中间改动的几个 bytes。
10.4 Protect your config
rclone.conf 可能包含云端授权 token。建议:
1 | |
也可以在 rclone config 里设置 config password。
10.5 Provider limits are real
云厂商有 API rate limit、daily upload limit、文件名限制、文件大小限制等。不同 backend 行为不完全一样。如果迁移非常大,建议先用一个小目录测试完整流程。
Summary
总结
rclone 最有价值的地方,是它把“服务器”和“自己的云端网盘空间”连接了起来。
它可以做:
- 大文件云端上传/下载;
- 服务器数据备份;
- 跨机器传输;
- 云端网盘间迁移;
- 把云端网盘挂载成本地目录。
对我来说,它就是服务器上的一个 storage adapter:本地磁盘不够时、服务器之间不好传文件时、想把数据备份到 Google Drive / Dropbox / OneDrive 时,都可以先想到它。
如果你经常在服务器上处理大文件,
rclone是一个很值得提前配置好的工具。
References
Rclone. Rclone syncs your files to cloud storage. https://rclone.org/ (accessed May 21, 2026).
Rclone. Install. https://rclone.org/install/ (accessed May 21, 2026).
Rclone. Documentation. https://rclone.org/docs/ (accessed May 21, 2026).
Rclone. Configuring rclone on a remote / headless machine. https://rclone.org/remote_setup/ (accessed May 21, 2026).
Rclone. rclone copy. https://rclone.org/commands/rclone_copy/ (accessed May 21, 2026).
Rclone. rclone sync. https://rclone.org/commands/rclone_sync/ (accessed May 21, 2026).
Rclone. rclone mount. https://rclone.org/commands/rclone_mount/ (accessed May 21, 2026).
Rclone. rclone check. https://rclone.org/commands/rclone_check/ (accessed May 21, 2026).
Rclone. Frequently Asked Questions. https://rclone.org/faq/ (accessed May 21, 2026).
原创文章,转载请标明出处
Made by Mike_Zhang
