由于各种原因(可能是这个错误),我制作的 Deja Dup 备份失败了。我一直在按照本指南手动恢复我的备份。这些步骤是:
在包含备份的文件夹中运行:
for t in duplicity-full.[yournumbershere].*.difftar.gz; do tar xf $t; done
这给了我两个文件夹:multivol_snapshot
和snapshot
. 在multivol_snapshot
文件夹中是我的所有文件,但分成较小的文件。我可以通过运行手动加入每个,cat * > file.txt
但这需要很长时间。该页面提供了一个名为 duplicity_join.py的脚本,它将它们连接在一起。但是,它不会保留文件夹结构,因此任何具有相同名称的文件或文件夹都会被覆盖。
是否有现有的方法可用于自动加入文件以保留文件夹结构?
使用我的修改复制本指南中的解决方案:
打开终端并导航到包含备份的目录。此文件夹包含归档到许多 .gz 文件中的所有文件。我的在一个名为
multivol_snapshot
. 使用以下命令解压缩所有档案:for t in duplicity-full.[yournumbershere].*.difftar.gz; do tar xf $t; done
这可能需要一段时间。我有 138GB 的数据,需要五个小时才能解压。
运行此程序将使您的文件和文件夹恢复到正确的结构,但需要注意的是:所有文件都被分成更小的部分。您可以通过运行以下命令轻松地手动加入这些文件:
cat * > examplefile.txt
但是,如果您有数千个文件,这样做可能需要很长时间。David Huss 编写了一个名为 duplicity_joiner.py 的 Python 脚本来简化此操作。在这里下载。
要运行它,您需要 python 和 tk。通过运行安装它:
sudo apt-get install python-dev sudo apt-get install python-tk
使用此脚本,您可以选择要还原文件的文件夹,但需要注意一点:此脚本不维护文件夹结构。因此,如果您有许多同名的文件夹和文件,则它们可能会被覆盖。
我已经重写了脚本来解决这个问题。它将保留文件夹结构,但可能导致文件夹路径很长。在这里下载。