deja-dup または duplicity を使用して Amazon S3 バックアップを復元できません。誰か助けてくれませんか?

deja-dup または duplicity を使用して Amazon S3 バックアップを復元できません。誰か助けてくれませんか?

どなたか、この件について手伝っていただけますか? 私はしばらくの間、Ubuntu 14.04 マシンのバックアップに deja-dup を使ってきました。私は duplicity バージョン 0.6.23、deja-dup バージョン 30.0 を使用しています。どのバックアップを選択しても、エラーが発生します。

deja-dup UI を使用すると、次のエラーが表示されます: "BackendException: Error listng s3+http [リンクを投稿できないため、スペースを入れています] ://mybucketname1/computer-XPS13-9333"

(投稿の目的上、エラー メッセージとコマンド内のすべての識別情報を匿名化しています)

私はコマンドラインで duplicity を使用していくつかのバリエーションを試しましたが、うまくいきませんでした。

このコマンド:

AWS_ACCESS_KEY_ID=XXXXXXXX AWS_SECRET_ACCESS_KEY=XXXXXXX duplicity restore s3+http

[リンクを投稿できないのでスペースを入れています] ://mybucketname1/computer-XPS13-9333 /media/standard/Seagate\ Backup\ Plus\ Drive/restore/

次のエラーを返します:

PermanentRedirect The bucket you are attempting to access must be addressed using the specified endpoint. Please send all future requests to this endpoint.</Message><Bucket>mybucketname1</Bucket><Endpoint>mybucketname1.s3.amazonaws.com</Endpoint><RequestId>XXXXXXXX</RequestId><HostId>Pwl/XXXXXXXXXXXXXXXXXXXXXXXX=</HostId></Error>

そこで、別のエンドポイントで試して、これを実行しました。

AWS_ACCESS_KEY_ID=XXXXXXXXX AWS_SECRET_ACCESS_KEY=XXXXXXXXX duplicity restore s3+http
[I'm putting a space heere because it won't let me post a link]
://mybucketname1.s3.amazonaws.com/computer-XPS13-9333 /media/standard/Seagate\ Backup\ Plus\ Drive/restore/

<Error><Code>NoSuchBucket</Code><Message>The specified bucket does not exist</Message><BucketName>mybucketname1.s3.amazonaws.com</BucketName><RequestId>XXXXXXXXX</RequestId><HostId>XXXXXXXXXXXXXXX</HostId></Error>

おそらく、通知されたエンドポイントが間違っているのではないかと思い、S3 サイトで見つけたものを試して、これを実行しました。

AWS_ACCESS_KEY_ID=XXXXXXXX AWS_SECRET_ACCESS_KEY=XXXXXXXXXXXXX duplicity restore s3+https
[I'm putting a space bere because it won't let me post a link]
://s3-us-west-2.amazonaws.com/mybucket1/computer-XPS13-9333 /media/standard/Seagate\ Backup\ Plus\ Drive/restore/

そして次のエラーが発生しました:

UnsupportedBackendScheme: scheme not supported in url: s3

これは http/https の問題かもしれないと思ったので、http と同じコマンドを試してみたところ、このエラーが発生しましたが、このエンドポイントは実際に使用すべき URL ではないことは確かです。

PermanentRedirectアクセスしようとしているバケットは、指定されたエンドポイントを使用してアドレス指定する必要があります。今後のすべてのリクエストはこのエンドポイントに送信してください。s3-us-west-2.amazonaws.coms3-us-west-2.amazonaws.com.s3.amazonaws.comXXXXXXXXXXXXXXXXXXXXXXXX

誰か何かお勧めはありますか? 大量のデータを失ったので、それを取り戻し、代わりに Dropbox か何かを使ってバックアップを始めたいと思っています。この問題についてはしばらく調査していますが、どうやら duplicity にはさまざまな問題があるようですが、まだこの問題の解決策が見つかっていません。

答え1

私はこれを理解し、同様の問題を抱えている他の人のために自分の質問に答えています。まず、バックアップ全体を一度に復元できないことがわかりました。バックアップが大きすぎてタイムアウトします。私が取らなければならなかった戦略は、一度にサブディレクトリを実行することでした。また、list-current-files を実行しようとしたとき、何も返されませんでした。バックアップ ファイルは巨大でしたが、復元するファイルがないと表示されました。フラグを使用すれば-t機能することがわかりました。これはおそらく、最後のバックアップが破損していたことを意味しますが、時間を少し遡って (私の場合は 6 か月)、復元するファイルを見つけることができました。まず、復元するファイルを知るために、ファイルのリストを取得する必要がありました。

AWS_ACCESS_KEY_ID=xxxxxxxxxxxxxxx AWS_SECRET_ACCESS_KEY=xxxxxxxxxxxxxxxx PASSPHRASE=xxxxxxxxx duplicity list-current-files --timeout=2400 --tempdir /path/path/path/ --num-retries=500 -t 6M s3://s3-us-west-2.amazonaws.com/mybucketname1/computer-name | tee -a restore_file_list-6M.txt

restore_file_list-6M.txtこれにより、バックアップに含まれるファイルを見つけるために使用する必要があるファイルが提供されます。

s3+http://また、ドキュメントに記載されている内容に反して、 は間違っていることにも気づくでしょうs3://。代わりにが必要です。

バックアップ内のファイルのリストを取得したらrestore_file_list-6M.txt、次のコマンドを使用して、一度に 1 つのディレクトリを復元できます。

AWS_ACCESS_KEY_ID=XXXXXXXXXXX AWS_SECRET_ACCESS_KEY=XXXXXXXXXXXXX PASSPHRASE=XXXXXXXXXXXX duplicity restore --timeout=2400 --tempdir /path/path/path/ --allow-source-mismatch --file-to-restore source/in/backup --num-retries=500 -t 6M  s3://s3-us-west-2.amazonaws.com/mybucketname1/computer-name /place/I/want/to/restore/to/

--timeout フラグに何らかの機能があるかどうかはわかりませんが、--num-retries は間違いなく重要です。これは、ファイルごとに約 1 回タイムアウトし、ファイルを正常にダウンロードするまでに 100 回以上タイムアウトすることがあるためです。

これで、私は永遠に二重生活から解放されました。

関連情報