我想安全地备份我的 80G 硬盘,但进行完整备份需要很长时间,而且会降低我的机器速度,所以我想每天只备份 1G。详情:
% 第一关:第一天,我要备份硬盘的“第一个”1G。当然,硬盘上根本就没有“第一个”1G。
% 80 天后,我将备份我的整个硬盘……假设我的文件不会发生变化,但当然会发生变化。因此,备份计划/程序还必须捕捉随之而来的文件创建/更改。
% 备份必须一致,这样我才能通过按顺序恢复备份来恢复系统。换句话说,“dd if=/harddrive”可能不起作用。
% 备份应该加密文件内容和名称,但我不认为这是一个主要障碍。
% 备份完成后一切(甚至是更改过的文件),它可以重新备份我硬盘上的前 1G。尽管这个备份是多余的,但没关系,因为我总是想备份一些东西(例如,如果我备份到光学介质,旧介质可能会开始损坏)。
是否存在一个神奇的备份计划/程序可以做到这一点?
实际上,我想对多台具有多个驱动器的机器执行此操作,但我认为解决上述问题将解决一般情况。
答案1
问题
我熟悉 rsync,并尝试使用它和其他工具编写一个 Perl 脚本来执行我想要的操作。但是,rsync 本身并不能完成我想要的操作。不幸的是,如果文件发生轻微更改,文件的加密版本就会发生很大变化,因此 rsync 甚至对单个文件都不太适用。
解决方案?
rsyncrypto 是一款以 rsync 友好方式加密文件的实用程序。rsyncrypto 算法可确保两个几乎相同的文件在使用 rsyncrypto 和相同密钥加密时,将生成几乎相同的加密文件。这允许 rsync 实现低开销数据传输,同时提供加密以在远程位置安全地传输和存储敏感数据。
(从维基百科)
还
答案2
崩溃计划我认为它是免费的,并且可以满足您的所有需求。
答案3
尝试使用Rsync。您必须完成一次完整备份,但之后您只需每天移动已更改文件的压缩 tarball。稍微谷歌一下就会找到许多 shell 脚本来完成此操作,并且 Rsync 的 Windows 实现工作得很好。
答案4
如果你正在使用(或者不介意切换到)支持快照(*)那么每天备份 1 GB 非常简单:
- 对本地磁盘的当前状态进行快照
- 每天将 1 GB 的快照备份到异地远程机器(可能使用带有“--encrypt”选项和“--split-size 1g”选项的“zip”)
- 备份完整快照后,丢弃本地快照。
备份完第一个快照后,您可以继续以完全相同的方式创建新快照。但我认为,通过以下方法,您可以在更短的时间内获得完全相同的结果
- 在远程机器上运行复制命令,复制最近的完整快照,以创建全新快照的草稿。
- 对本地磁盘的当前状态进行全新快照
- 使用 rsyncrypto(感谢 RedGrittyBrick)并将 --bwlimit 设置为 1 GB/天,允许它将远程草稿修改为全新快照的精确副本。
(*)“支持快照”是指(a)在支持系统快照的虚拟机中运行,或者(b)使用 ext3cow、btrfs、ZFS 或其他支持快照的文件系统——我所知道的所有文件系统都由“文件系统的比较“ 文章。