如何让Duplicity恢复部分备份时从卷529后开始,跳过已备份文件?
问题描述
当duplicity恢复部分备份时,会从头遍历所有文件,可能检查已备份文件是否发生变化。由于我已备份数TB数据且确认未更改,该处理方式速度过慢。
相关日志:
Found 531 volumes in manifest Local and Remote metadata are synchronized, no sync needed. Last full backup left a partial set, restarting. Last full backup date: Fri Oct 6 14:41:16 2023 Processing local manifest b'duplicity-full.20231006T184116Z.manifest.part' (157879) Found 531 volumes in manifest RESTART: Volumes 530 to 531 failed to upload before termination. Restarting backup at volume 530. Skipping encryption validation due to glacier/deep storage Restarting after volume 529, file hello/world.nii.gz, block 14
问题:是否有办法让duplicity仅从卷529之后开始处理文件?
解决方案
1. 使用--start-volume参数(推荐)
Duplicity的恢复命令支持--start-volume选项,可直接指定从目标卷号开始处理。针对你的场景,执行恢复时添加该参数:
duplicity --start-volume 530 /path/to/restore /path/to/backup/source
卷号从1计数,要跳过前529卷,就指定起始卷为530。这个参数会让Duplicity直接跳过前面的卷,无需遍历检查已确认无变化的文件,大幅提升速度。
2. 手动修改备份元数据(谨慎操作)
如果上述参数不生效,可手动调整本地的manifest文件(即日志中的duplicity-full.20231006T184116Z.manifest.part):
- 找到记录已完成卷的字段,将已处理卷数改为529
- 保存后再执行恢复命令
⚠️ 此方法存在风险,可能破坏备份链完整性,仅在完全确认前529卷无变化且元数据完整时使用,操作前务必备份manifest文件。
注意事项
- 确保Duplicity版本支持
--start-volume(v0.7.0+版本均支持,旧版本建议升级) - 操作前备份本地元数据文件,避免意外损坏备份链
内容的提问来源于stack exchange,提问作者tash
相关产品推荐
相关产品推荐

