無法使用 deja-dup 或口是心非恢復 Amazon S3 備份,有人可以幫忙嗎?

無法使用 deja-dup 或口是心非恢復 Amazon S3 備份,有人可以幫忙嗎?

有人可以幫我嗎?我已經使用 deja-dup 備份我的 Ubuntu 14.04 機器有一段時間了。我有口是心非的版本0.6.23,deja-dup版本30.0。無論我選擇哪個備份,都會出現錯誤。

當我使用 deja-dup UI 時,我只是收到此錯誤:"BackendException: Error listng s3+http [我放了一個空格,因為它不允許我發布鏈接]://mybucketname1/computer-XPS13-9333”

(為了發布的目的,我對錯誤訊息和命令中的所有識別資訊進行匿名化)

我已經透過命令列嘗試了一些變體,使用口是心非,但沒有任何運氣。

這個命令:

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您嘗試存取的儲存桶必須使用指定的端點進行尋址。請將所有未來請求發送到此端點。

有人有建議嗎?我丟失了一堆數據,希望能找回它,並開始使用 dropbox 或其他東西來備份它。我已經研究這個問題有一段時間了,顯然口是心非有各種各樣的問題,但我仍然沒有找到解決這個問題的方法。

答案1

我弄清楚了這一點,並且我正在回答自己的問題,以便其他有類似問題的人受益。首先,我發現我無法立即恢復整個備份。它太大且超時。我必須採取的策略是一次處理子目錄。另外,當我嘗試列出當前文件時,它不會返回任何內容。儘管備份檔案很大,但它說我沒有要恢復的檔案。我發現如果我使用該-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,我就可以使用以下命令一次恢復一個目錄:

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 絕對重要,因為每個檔案大約會超時一次,有時會在成功下載檔案之前超時一百多次。

現在,我永遠不再口是心非了。

相關內容