问题描述
问题说明了一切:
如果 rsnapshot 或 rdiff-backup 在传输过程中被中断会发生什么?
我知道 rsnapshot 会尝试以旋转方式制作系统的完整快照,而 rdiff-backup 会进行差异备份,这将基于之前保存在其后面的文件。
那么:如果中间被打断了怎么办?
这会导致 “incomplete snapshot” 吗?
其他依赖于此快照的快照是否会损坏? (当然不是,但是……?)
最佳办法
我的理解是……
rdiff-backup 将在下次运行时检测到不完整的增量。它将删除不完整的增量,以便备份位置与中断的备份尝试从未开始一样。
rsnapshot 稍微复杂一些,因为它的例程更加循序渐进,并且根据 sync_first
和 use_lazy_deletes
选项的使用而有所不同。
-
如果您使用
sync_first
并且rsnapshot sync
被中断,您只需再次运行rsnapshot sync
即可解决问题。如果您此时不小心运行了rsnapshot <backup level>
,则最新的备份点将保持不完整,并将通过轮换进行。 -
如果您不使用
sync_first
,那么您只会遇到一个不完整的备份点,该备份点是新旧版本文件的混合体。除非您手动 reverse-rotate 每个备份点,否则不完整的备份点将通过轮换进行。 -
在这两种情况下,运行
rsnapshot <backup level>
将导致最旧的备份点丢失,除非启用use_lazy_deletes
。
请注意,sync_first
和 use_lazy_deletes
是以使用更多磁盘空间为代价的。
提醒/免责声明:这是不言而喻的,但永远不要盲目相信互联网上其他人的建议。如果您打算将 rdiff-backup 或 rsnapshot 用于 mission-critical,请阅读手册中的每一个字,然后自己测试、测试、测试所有内容!