web-dev-qa-db-ja.com

壊れたDeja Dupバックアップを手動で復元する方法

さまざまな理由(おそらく このバグ )で、私が作成したDeja Dupバックアップは失敗しました。私は このガイド に従ってバックアップを手動で復元しています。手順は次のとおりです。

バックアップを含むフォルダーで次を実行します。

for t in duplicity-full.[yournumbershere].*.difftar.gz; do tar xf $t; done

これにより、multivol_snapshotsnapshotの2つのフォルダーができました。 multivol_snapshotフォルダーにはすべてのファイルがありますが、小さなファイルに分割されています。 cat * > file.txtを実行して手動でそれぞれに参加できますが、これには非常に長い時間がかかります。このページには、スクリプトを結合する duplicity_join.py というスクリプトが用意されています。ただし、フォルダー構造は保持されないため、同じ名前のファイルまたはフォルダーは上書きされます。

ファイルを自動的に結合して、フォルダー構造を維持する既存の方法はありますか?

4
hellocatfood

このガイド からソリューションをコピーして、変更を加えます:

ターミナルを開き、バックアップを含むディレクトリに移動します。このフォルダーには、多くの.gzファイルにアーカイブされたすべてのファイルが含まれます。私はmultivol_snapshotというフォルダーにいました。次のコマンドですべてのアーカイブを解凍します。

for t in duplicity-full.[yournumbershere].*.difftar.gz; do tar xf $t; done

これには時間がかかる場合があります。 138GBのデータがあり、解凍に5時間かかりました。

これを実行すると、ファイルとフォルダーが正しい構造に戻りますが、1つの警告があります。すべてのファイルは小さな断片に分割されます。次のコマンドを実行すると、これらのファイルを手動で簡単に結合できます。

cat * > examplefile.txt

ただし、数千のファイルがある場合、これには非常に長い時間がかかる可能性があります。 David Hussは、これを簡単にするために、duplicity_joiner.pyというPythonスクリプトを作成しました。 ここからダウンロード

実行するには、pythonとtkが必要です。以下を実行してインストールします:

Sudo apt-get install python-dev Sudo apt-get install python-tk

このスクリプトを使用すると、ファイルを復元するフォルダーを選択できますが、1つの警告があります。このスクリプトはフォルダー構造を維持しません。そのため、同じ名前のフォルダーとファイルが多数ある場合、それらが上書きされる可能性があります。

これに対処するためにスクリプトを書き直しました。フォルダー構造は保持されますが、フォルダーパスが非常に長くなる可能性があります。 ここからダウンロード

3
hellocatfood