我有一台 QNAP TS-251+ NAS(如果需要,可通过 VPN + SMB 连接),我想将两台机器上的文件备份到它(运行 Windows 8.1 和 Windows 10),主要是用户配置文件数据(我的文档等)。我目前没有使用 NAS 的快照功能,它正在运行标准 RAID 设置。
我认为最好在文件级别复制数据,以确保以后可以访问它们。我对专有备份格式有一点信任问题,而且它还会让我从手机访问文件。这将是单向同步,这样我就可以从我的电脑上删除东西,但它仍然会在 NAS 上可用,直到我从那里手动删除它。我想 robocopy 会是这里的标准选择?
但我也想保留文件历史记录。例如,万一文件在本地损坏,而我在服务器更新更改之前没有注意到。我想如果想要保留目录结构等,在文件级别上做到这一点会很困难/不可能。所以也许可以与 NAS 上的“文件历史记录”工具结合使用?
最后,我还想以加密方式将整个 NAS 备份到某个云存储中。有什么好的选择吗?
谢谢。
答案1
rsync(类似 Unix 的 Robocopy;它也适用于 Windows)有一个选项--link-dest
,用于指定新副本的远程基线。您可以通过安装来获取它赛格威并选择 rsync 包。
您的 QNAP 原生支持 rsync,因此您可以使用 rsync 目标(而不是写入 SMB 共享)。
在将文件复制到新目标之前,rsync 会检查基线是否存在相同的文件。如果存在,它会创建指向现有副本的硬链接,而不是重新复制文件。
硬链接不是通常意义上的“链接”;它是指向文件内容的链接,就像原始文件名是指向文件内容的链接一样。删除文件时,除非链接计数为零,否则不会释放内容。这意味着您可以删除任何给定的备份,而周围的备份将保持不变。
大多数交钥匙 rsync 解决方案都是基于 Unix 的,需要进行一些调整才能在 Cygwin bash 下工作。您也可以自己动手。Michael Jakl 有很好的教程这解释了基础知识;简而言之,你可以从这个开始:
rsync -aP --link-dest=../$PREVIOUS_BACKUP $SOURCE qnap::backups/$NEW_BACKUP
然后围绕它编写代码来确定您之前的备份是什么、您当前的备份应该是什么、当出现故障时该怎么做以及何时或是否删除旧备份。
请注意,link-dest 参数与目标相关。您无需在其中指定主机名。
至于你的第二个问题:有很多工具可以将文件同步到云端。我使用克隆并且没有任何抱怨。它支持许多云提供商,并且很好地处理加密。