跳转到内容

备份到云存储

异地备份最省事的形态是上云:不需要第二台设备,不需要跑一趟父母家。代价是流量、费用,以及你必须自己处理加密

选择存储目标

类型特点适合
对象存储(S3 兼容、归档型存储)按量计费、可靠性高、API 稳定长期不常取回的冷数据
网盘有免费额度、界面友好容量小、接口变动频繁,仅适合辅助
另一台自己的设备无月费异地互备

选对象存储时注意取回费用:归档类存储的存放很便宜,但真正需要恢复时的下载费用可能是一笔不小的开销。把它算进预算,否则灾难发生时你会犹豫要不要取回数据——那就失去了备份的意义。

上传前加密

数据放在别人的服务器上,就应该假设它可能被读取。rclone 提供了 crypt 这一层,能在上传前加密文件内容和文件名。

密钥丢失 = 数据永久丢失

加密备份的密码和 salt 必须保存在这台 NAS 之外的地方。放在 NAS 上的密钥,在 NAS 损毁时恰好取不出来——而那正是你需要这份备份的时刻。存进密码管理器,并打印一份放在安全的地方。

用 rclone 配置

rclone 是一个跨多种云存储的命令行同步工具。通过 SSH 登录 NAS 后配置(开启 SSH 见SSH 与命令行),也可以用容器方式运行。

sh
rclone config

交互式配置分两步:先建一个指向云服务的远端(填入服务商的密钥),再建一个 crypt 类型的远端,把前者作为它的底层存储。之后所有操作都对着 crypt 远端进行,加解密自动完成。

配置好后,先用一个小目录试跑:

sh
rclone sync /vol1/测试目录 加密远端:backup/test --dry-run -v

参数说明:sync 让目标与源保持一致;--dry-run 只显示将要执行的操作而不真正执行,这是第一次运行时必须加的;-v 输出详细日志。

确认输出符合预期后,去掉 --dry-run 正式执行。

定时执行

把命令写成脚本,用系统的定时任务每天或每周执行一次。脚本里要做三件事:

  1. 执行同步,把日志写到文件。
  2. 检查退出码,失败时发送通知。
  3. 记录本次同步的时间和传输量。

没有失败通知的定时备份,等同于没有备份。 任务可能因为密钥过期、配额用尽或网络问题静默失败数月。

注意 sync 和 copy 的区别

  • copy 只增不减:源上删除的文件,目标上仍然保留。
  • sync 让目标完全等于源:源上误删的文件,下一次同步会从目标上一并删除

防误删的场景下,copy 更安全;想控制云端容量则用 sync,但要配合服务商的版本管理或回收站功能。想清楚再选。

检查结果

  1. 从云端下载一个备份文件到本地,用 rclone 解密后打开,确认内容完整。
  2. 断开 NAS 与云端的连接(例如临时改掉密钥),确认备份任务会失败并且你收到了通知
  3. 记录下完整恢复一次大约需要多长时间和多少费用。

延伸阅读

参考资料

fnOS 非官方中文使用指南,与飞牛官方无隶属关系。