使用 rclone 实现云存储自动同步

备份的数据要同步到云端才安全。rclone 是 Linux 上最强大的云存储同步工具,支持 40+ 云盘。

为什么 rclone

- 支持多平台 — 阿里云、OneDrive、Google Drive、S3、FTP…

- 增量同步 — 只传改动的文件

- 加密 — 端到端加密

- 免费开源 — 一行命令安装

安装

# 一行命令安装

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

验证

rclone version

配置云盘

rclone config

选 n 新建,按提示选云盘类型:

阿里云盘

Type > aliyun

Access Key ID > 你的AccessKey

Secret Access Key > 你的SecretKey

OneDrive

Type > onedrive

Client Id > Azure 应用 ID

Client Secret > 应用密钥

Google Drive

Type > drive

Client Id > GCP 凭据 ID

Client Secret > 客户端密钥

配置完会给一个 remote 名称,比如 aliyun:

基本命令

列出文件

rclone lsd aliyu

复制文件

# 本地到云端

rclone copy /opt/backup aliyu:backup

云端到本地

rclone copy aliyu:backup /opt/restore

同步(单向)

rclone sync /opt/backup aliyu:backup --dry-run  # 预览

rclone sync /opt/backup aliyu:backup # 执行

挂载为磁盘

rclone mount aliyu:backup /mnt/aliyun --vfs-cache-mode writes &

自动同步脚本

#!/bin/bash

DATE=$(date +%F)

SOURCE="/opt/services/backup"

TARGET="aliyu:backup"

同步

rclone sync $SOURCE $TARGET \

--log-level INFO \

--transfers 4 \

--bwlimit 10M \

--exclude "*.tmp" \

--exclude ".DS_Store"

日志

echo "[$(date)] Sync completed" >> /var/log/rclone.log

加到 crontab:

# 每天凌晨 4 点

0 4 * * * /opt/scripts/rclone-sync.sh >> /var/log/rclone.log 2>&1

加密同步

不想让云服务商看到内容?用加密:

rclone config

新建 remote,选择 Crypt

后端选择上面的 aliyu

加密后上传的文件云端看是一堆乱码,只有本地能解密。

踩坑记录

坑 1:Token 过期

阿里云盘 token 几个月要重新授权。rclone 会提示 token expired,重新 rclone config 更新。

坑 2:上传被限速

运营商上行带宽小,加 --bwlimit 10M 限制速度,别把带宽跑满。

坑 3:大文件失败

单个文件超过 5G 可能会超时。重试:

rclone copy large.zip aliyu:backup --retries 3 --low-level-retries 5

我的用法

| 任务 | 云盘 | 频率 |

|------|------|------|

| 备份 | 阿里云盘 | 每天 |

| 归档 | Google Drive | 每周 |

| 分享 | OneDrive | 按需 |

总结

rclone 是云端备份神器:

- 多云盘 — 40+ 服务商

- 增量同步 — 只传改动的

- 加密 — 端到端安全

- 自动 — 配好 cron 不用管

配合之前的备份脚本,数据安全有保障。