使用 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 不用管
配合之前的备份脚本,数据安全有保障。
Nginx/OpenResty rclone云存储自动同步
本文采用 CC BY-NC-SA 4.0 许可协议,转载请注明出处。
评论交流
欢迎留下你的想法