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 工具很像。你可以把它理解成云端版的 cprsyncmvlsmount

1
2
3
4
rclone ls gdrive:
rclone copy /local/path gdrive:remote/path
rclone sync /local/path gdrive:remote/path
rclone mount gdrive: ~/mnt/gdrive

这里的 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
2
sudo -v
curl https://rclone.org/install.sh | sudo bash

macOS 也可以用 Homebrew:

1
brew install rclone

不过如果你需要在 macOS 上使用 rclone mount,官方文档提醒 Homebrew 版本不再支持 mount,这时更推荐使用官方 precompiled binary。

安装后检查版本:

1
rclone version

4. Connect Your Cloud Drive

4. 连接自己的网盘

官网链接:Configure rclone

rclone 的第一步是配置 remote:

1
rclone config

进入交互式配置后:
(建议参考Configure rclone来配置不同类型的网盘)

  1. 选择 n 新建 remote;
  2. 给 remote 起名,例如 gdrivedropboxonedrive
  3. 选择 storage type,例如 drivedropboxonedrive
  4. 按提示完成 OAuth 授权;
  5. 保存配置。

配置完成后可以检查:

1
2
3
rclone listremotes
rclone lsd gdrive:
rclone about gdrive:

其中 about 用于查看 quota / usage 信息,但不是所有 backend 都支持;如果某个 remote 不支持,可以跳过这一步。

以后路径就写成:

1
remote:path/to/folder

例如:

1
2
3
gdrive:Research/projectA
onedrive:Backup/server1
dropbox:transfer/dataset.tar.gz

5. Headless Server

5. 没有浏览器的服务器如何授权

官网链接:Configuring rclone on a remote / headless machine

很多服务器没有桌面环境,也不能直接打开浏览器。这时有两种常用方式。

5.1 Method 1 - rclone authorize

在本地浏览器授权,再粘贴 token

On remote server:

1
rclone config

当它问你是否使用浏览器自动授权时,选择 n

1
2
3
4
Use web browser to automatically authenticate rclone with remote?
y) Yes
n) No
y/n> n

然后它会提示你在一台有浏览器的机器上运行类似命令:

1
rclone authorize "drive"

On your local computer:

1
rclone authorize "drive"

完成网页授权后,本地会输出一段 token。复制它,回到服务器粘贴即可。

5.2 Method 2 - Copy config file

直接复制配置文件

你也可以先在本地电脑配置好 remote,然后查看配置文件位置:

1
rclone config file

再把这个 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
2
3
rclone lsd gdrive:
rclone ls gdrive:Research
rclone tree gdrive:Research --level 2

6.2 Copy

复制,不删除 destination

官网链接:rclone copy

1
2
rclone copy /local/path gdrive:remote/path -P
rclone copy gdrive:remote/path /local/path -P

注意:当 source 是目录时,rclone copy 复制的是这个目录里的内容,而不是把目录名本身再复制一层。所以如果你想让云端目录叫 project,destination 也要写到 .../project

copy 适合:

  • 上传新文件;
  • 下载数据;
  • 多台机器往同一个 backup folder 追加文件;
  • 不希望误删云端已有内容的场景。

6.3 Sync

同步,使 destination 匹配 source

官网链接:rclone sync

1
2
rclone sync /local/path gdrive:remote/path --dry-run
rclone sync /local/path gdrive:remote/path -P

sync 适合:

  • 做镜像备份;
  • 让云端和本地保持一致;
  • 从旧网盘迁移到新网盘。

但它也最危险,因为它会修改 destination,并可能删除 destination 中 source 没有的文件。

6.4 Move

移动,传完后删除 source

官网链接:rclone move

1
rclone move /local/path gdrive:remote/path -P

move 适合本地磁盘快满、确认云端保存成功后释放空间的场景。但第一次用时我建议先用 copy,确认无误后再手动删除本地文件。

6.5 Check

检查两边是否一致

官网链接:rclone check

1
rclone check /local/path gdrive:remote/path

check 会比较 source 和 destination,报告缺失或不匹配的文件。对于重要备份,传完后跑一次 check 会安心很多。


7. Backup Recipes

7. 备份实践

官网链接:rclone copy, rclone sync, rclone check

备份的核心不是“复制一次”,而是可以重复、安全、自动地更新。我的习惯是把 copysync 分开理解:

  • copy:只复制新增或变化的文件,不会删除 destination 里已有但 source 没有的文件,适合上传、下载、追加式备份;
  • sync:让 destination 和 source 保持一致,可能删除 destination 里多出来的文件,适合镜像备份;
  • check:传完后检查两边文件是否一致,重要数据建议跑一次。

7.1 Upload / Download large files

大文件上传/下载

在服务器上训练模型、处理测序数据、跑仿真、整理视频素材时,文件经常不是几十 MB,而是几十 GB 起步。rclone copy 可以把本地文件或目录复制到云端,也可以反过来从云端下载到服务器:

1
2
3
4
5
6
7
8
# Upload a single big file
rclone copy /data/result.tar.gz gdrive:results/ -P

# Upload a folder
rclone copy /data/project gdrive:projects/project -P

# Download a folder
rclone copy gdrive:projects/project /data/project -P

其中 -P / --progress 会显示实时进度,对于大文件非常重要。

7.2 One project backup

单个项目备份

第一次写 sync 命令时,建议先加 --dry-run,确认不会误删目标端文件后再正式执行:

1
2
3
rclone sync /data/my-project gdrive:backup/my-project --dry-run
rclone sync /data/my-project gdrive:backup/my-project -P
rclone check /data/my-project gdrive:backup/my-project

如果你只是想“追加上传,不删除云端已有文件”,用 copy 更稳:

1
rclone copy /data/my-project gdrive:backup/my-project -P

7.3 Keep a current backup

维护一个 current 版本

1
2
rclone sync /data/my-project gdrive:backup/my-project/current --dry-run
rclone sync /data/my-project gdrive:backup/my-project/current -P

这个适合“云端永远保持最新”的备份。

7.4 Keep snapshots

保留多个时间点

1
2
BACKUP_DATE=$(date +%F)
rclone copy /data/my-project gdrive:backup/my-project/$BACKUP_DATE -P

这个适合“我不想旧版本被覆盖”的备份。缺点是占空间更快。

7.5 Cron automation

定时备份

可以把命令写进 shell script,然后用 crontab 定时运行:

1
0 3 * * * rclone sync /data/my-project gdrive:backup/my-project/current --log-file ~/rclone-backup.log --log-level INFO

我的建议是:自动化之前,先手动跑通 --dry-run 和一次正式备份。


8. Transfer Recipes

8. 传输实践

官网链接:rclone copy, rclone sync, Server-side copy

8.1 Server to laptop

服务器传到本地电脑

On server:

1
rclone copy /data/result.tar.gz gdrive:transfer/ -P

On laptop:

1
rclone copy gdrive:transfer/result.tar.gz ~/Downloads/ -P

8.2 Server A to Server B

服务器 A 传到服务器 B

有时两台服务器之间不能直连,或者跨学校、跨机房、跨云厂商,直连速度不稳定。这时可以把网盘当作中转站。

On Server A:

1
rclone copy /data/dataset gdrive:transfer/dataset -P

On Server B:

1
rclone copy gdrive:transfer/dataset /data/dataset -P

这种方式很朴素,但非常实用。尤其是你已经有 Google Drive / OneDrive 的大容量教育账户,或者 Dropbox / S3 / B2 这种稳定存储时,它可以临时承担一个 data relay 的角色。

8.3 Google Drive to OneDrive

Google Drive 迁移到 OneDrive

1
rclone copy gdrive:Research onedrive:Research -P

如果是最终迁移,目标端需要和源端完全一致:

1
2
rclone sync gdrive:Research onedrive:Research --dry-run
rclone sync gdrive:Research onedrive:Research -P

这里有一个重要 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
2
mkdir -p ~/mnt/gdrive
rclone mount gdrive: ~/mnt/gdrive --vfs-cache-mode writes --daemon

测试:

1
ls ~/mnt/gdrive

卸载:

1
2
3
4
5
fusermount -u ~/mnt/gdrive
# or
fusermount3 -u ~/mnt/gdrive
# macOS / some Linux systems
umount ~/mnt/gdrive

9.2 Mount a subfolder

只挂载某个云端子目录

1
2
mkdir -p ~/mnt/project
rclone mount gdrive:Research/projectA ~/mnt/project --vfs-cache-mode writes --daemon

这样可以避免把整个网盘暴露为一个大目录,也更清晰。

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
rclone sync source:path dest:path --dry-run

先 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
chmod 600 ~/.config/rclone/rclone.conf

也可以在 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




感谢你的支持 | Thank you for supporting

Rclone: 云存储界的瑞士军刀
https://ultrafish.io/post/rclone-cloud-storage-cli/
Author
Mike_Zhang
Posted on
May 21, 2026
Licensed under