基于 7z 的 NAS 到网盘备份解决方案,支持增量、分卷、加密、压缩
故事背景
曾经,我组建了一个极空间的 NAS。往里面塞了两块 12T 的硬盘,将 20 年来的照片,音乐,电影,游戏、代码、文档都导了进去。虽然两块硬盘互为备份的机制一定程度解决了硬盘可能出现的寿命问题,但心里总是没底,毕竟两块硬盘在物理层面是放在一起的,万一出个什么断电或者天灾什么的,两块硬盘一起坏了怎么办?将数据备份到网盘是一个不错的选择。但问题马上出现,NAS 上的文件至少有几十万到上百万,有些文件的目录层级还藏的很深,还有一些超过 10G 的巨型文件。绝大多数网盘都无法处理这种海量文件和巨型文件的情况,另外,照片库是一个非常隐私的东西,我也不想直接把照片传到网盘上,被大数据精准营销,有些文件,比如游戏和电影资源,还可能会直接被网盘封杀,另外,每隔一段时间,我都需要向网盘上传新增的文件,很难整理出哪些文件是新的,将以上问题总结起来就是——
- 要支持海量小文件的备份
- 要支持单个过大的文件的备份
- 要支持先加密再上传到网盘
- 要支持增量备份(你也不想每次备份完都上传几个 T 的文件吧)
首先想到的方案是直接通过 7-Zip 分卷加密压缩,但是这样意味着当我想从网盘中取出某一个文件时,必须要把整整 2~3T 的文件全部下下来。后来我了解到了 Duplicati,这也是很多极空间用户的选择。他可以直接通过 Docker 的方式部署在极空间,实现文件的加密备份,你可以手动设置每个备份文件的最大大小,更方便的是需要某个文件时,只需要从网盘下载相关的分卷即可。但使用以后,我又发现以下两个问题——
