rclone 备份到对象存储:异地容灾的第二块拼图

本地备份+异地备份还不够?小够教你用 rclone 把备份同步到对象存储(S3 兼容),多一份云端副本,容灾才算闭环,配置一次长期省心。

我是小够。前面讲过 321 备份原则:3 份数据、2 种介质、1 份异地。很多人做到"异地"就停了——比如用 rsync 同步到另一台 VPS。但小够要提醒一句:如果两台机器在同一个商家、同一个机房,严格说还不算真正的异地。对象存储(S3 兼容)是补上这块拼图的便宜办法。

rclone 是什么

rclone 是个命令行工具,号称"云存储界的 rsync",支持几十种后端:AWS S3、各类 S3 兼容存储、Google Drive 等等。一条命令就能在本地和云端之间同步文件,特别适合传备份包。

安装很简单,官方提供一键安装脚本(截至撰写时),或者用包管理器:

# Debian/Ubuntu
sudo apt install rclone

配置 remote

rclone config

按交互提示走:新建 remote → 选存储类型(S3 兼容选 s3)→ 填 endpoint、access key、secret key。密钥从对象存储控制台申请,只给这个 bucket 的读写权限,别用主账号密钥,这是基本的安全习惯。

配好后先列一下 bucket 确认连通:

rclone lsd mybackup:

同步备份上去

假设你的备份脚本每天凌晨生成 /backup/site-2025-08-02.tar.gz,同步命令:

rclone sync /backup/ mybackup:vps-backup/ --exclude "*.tmp"

注意 sync 是双向对齐:目标端多余的文件会被删。备份场景小够更推荐 copy,只增不删,误删了本地还能从云端找回来:

rclone copy /backup/ mybackup:vps-backup/

加一层加密

备份里可能有数据库、用户数据,直接放云端小够不放心。rclone 自带 crypt remote,给数据加一层加密,云端看到的全是密文:

rclone config  # 新建一个类型为 crypt 的 remote,底层指向 mybackup:
rclone copy /backup/ mycrypt:vps-backup/

密码自己记好,丢了谁也解不开——包括你自己。

自动化

把命令追加到备份脚本末尾,或者单独加一条 cron(凌晨备份完成后半小时执行)。再配个简单的成功/失败通知,云端同步失败了你得知道。

小够的建议

  • 对象存储按量计费,备份包先压缩再上传,省流量也省钱
  • 保留策略同样适用:云端 bucket 开生命周期规则,自动删 90 天前的旧备份
  • 定期做一次恢复演练:从云端拉一个包下来解压,确认能用。备份没验证过等于没备份

本地一份、另一台机器一份、对象存储一份——三份数据、两种介质、真正异地,321 闭环了。成本?对象存储存几个 GB 的备份,一个月通常就几块钱,够用的很。

常用命令速查

rclone 的子命令和 rsync 很像,记住这几个就够:

rclone copy /backup/ mybackup:vps-backup/    # 只增不删,最常用
rclone sync /backup/ mybackup:vps-backup/    # 双向对齐,目标端多余文件会被删
rclone move /backup/ mybackup:vps-backup/    # 传完删本地,适合中转
rclone check /backup/ mybackup:vps-backup/   # 对比两边是否一致
rclone ls mybackup:vps-backup/               # 看云端有什么
rclone delete mybackup:vps-backup/old/       # 删云端目录

copy 和 sync 的区别再强调一遍:备份场景用 copy,sync 的删除行为在误删时是灾难。

带宽限速:别把业务带宽打满

备份同步通常在凌晨跑,但如果白天要传大包,限个速:

rclone copy /backup/ mybackup:vps-backup/ --bwlimit 10M

10M 指 10MB/s,根据你的上行带宽调。备份是后台活,别跟业务抢带宽。

进阶:rclone 挂载

对象存储还能直接挂载成目录用:

rclone mount mybackup:vps-backup/ /mnt/backup --daemon

这样就能像本地目录一样翻历史备份。不过挂载的性能一般,适合"偶尔找个文件",不适合当主力访问方式。

多个 remote:鸡蛋多放几个篮子

rclone 配置多个 remote 不冲突:

rclone copy /backup/ backup-a:vps/   # 存储A
rclone copy /backup/ backup-b:vps/   # 存储B

重要数据可以同时推两家对象存储,配置文件里 remote 相互独立,一个挂了不影响另一个。

常见问题

Q:rclone 和 rsync 到底什么关系? A:rsync 管"机器之间",rclone 管"机器和云存储之间"。备份服务器之间同步用 rsync,同步到对象存储用 rclone,分工明确。

Q:传大文件断了怎么办? A:rclone 支持断点续传,重跑同一条命令就行。它会自动跳过已传完的部分,不用从头来。

Q:对象存储选哪家? A:看三点:S3 兼容(rclone 通吃)、价格(按量计费,备份场景都很便宜)、离你近(传得快)。具体哪家不点名,你按这三点自己比,够用的就行。