将 S3 存储桶备份到另一个存储桶?

将 S3 存储桶备份到另一个存储桶?

我目前正在研究 duply 和 duplicity 以将一个存储桶镜像到另一个存储桶,但看起来我可能会遇到困难?

到目前为止,我已经能够将本地目录备份到 S3 存储桶,这部分工作得很好。我真正的问题是,我试图通过备份本质上镜像两个存储桶来创建 S3 存储桶备份。

当我尝试运行 duply 工具时,我收到以下输出:

sudo duply test backup
Start duply v1.5.10, time is 2014-07-01 11:49:48.
Using profile '/home/user/.duply/test'.
Using installed duplicity version 0.6.23, python 2.7.6, gpg 1.4.16 (Home: ~/.gnupg), awk 'GNU Awk 4.0.1', bash '4.3.11(1)-release (i686-pc-linux-gnu)'.
Signing disabled. Not GPG_KEY entries in config.
Test - Encryption with passphrase (OK)
Test - Decryption with passphrase (OK)
Test - Compare (OK)
Cleanup - Delete '/tmp/duply.17999.1404233388_*'(OK)

--- Start running command PRE at 11:49:49.054 ---
Skipping n/a script '/home/jmreicha/.duply/test/pre'.
--- Finished state OK at 11:49:49.077 - Runtime 00:00:00.022 ---

--- Start running command BKP at 11:49:49.098 ---
Command line error: Two URLs specified.  One argument should be a path.
Enter 'duplicity --help' for help screen.
11:49:49.256 Task 'BKP' failed with exit code '2'.
--- Finished state FAILED 'code 2' at 11:49:49.256 - Runtime 00:00:00.157 ---

--- Start running command POST at 11:49:49.285 ---
Skipping n/a script '/home/jmreicha/.duply/test/post'.
--- Finished state OK at 11:49:49.308 - Runtime 00:00:00.022 ---

如您所见,duply/duplicity 需要本地文件路径作为源。如果它有助于诊断问题,我可以生成配置。

有没有办法让 duply/duplicity 运行备份,将一个 S3 bucket 作为另一个 S3 目标的源?如果没有,哪些工具可以同步两个 S3 bucket

答案1

如果有人遇到这个问题我会找到一个解决方法。

首先,如果你使用的是 Windows,需要将一个 bucket 复制到另一个 bucket,则可以使用s3cmd Express。我与 s3cmd 的一位开发人员进行了交谈,他提到 Linux/OSX 版本的 s3cmd 在处理大存储桶时存在问题,因此他告诉我如果可能的话最好使用 Express。

不幸的是,我只有一个 Linux 机器,所以我最终使用了aws cli。这与 s3cmd 非常相似,因为它们都依赖于 Python boto 库。同步存储桶的命令是:

aws s3 sync s3://mybucket s3://backup-mybucket

您可以附加--dryrun标志来先测试您的命令,以确保它能够执行您想要的操作。

相关内容