对于我托管网站的服务器,我想将数据和设置备份到 S3 存储桶。我发现您不能直接使用 rsync 备份到 S3 存储桶。还有其他方法可以实现以下 rsync 命令以将数据备份到 S3 存储桶吗?
rsync -av /Data /s3bucket
我还想将该服务器上的 mysql 数据库备份到 S3 存储桶。实现此目的的最佳方法是什么?
最后一个问题,如果我设法将所有内容备份到 S3。如果服务器崩溃或在最坏的情况下完全被清除,恢复服务器的最佳方法是什么?我是否必须自己记下服务器设置并重新配置服务器,或者有没有办法备份它?
答案1
要与 s3 通信,你需要具备以下两个条件
- 对 S3 存储桶具有读写访问权限的 IAM 用户凭证。
- 类似于 bash 的 aws-cli 客户端、Python 的 boto 库等等。
一旦拥有了这两者,您就可以将任何文件从您的计算机传输到 s3,也可以将任何文件从 s3 传输到您的计算机。以下是 aws-cli 的示例。
同步文件夹中的所有文件
aws s3 sync source_folder s3://your_bucket_name/destination_folder/
将一个文件复制到 s3
aws s3 cp source_file s3://your_bucket_name/destination_folder/
只需更换来源&目的地在命令中从 s3 下载任何文件。
欲了解更多信息,请关注AWS 文档
答案2
答案3
如果您对权限不感兴趣,aws-cli 非常适合同步到 S3。
请记住,它不保留文件可以拥有的许可信息或其他元数据。
文档中没有很好的建议,恢复时您会遇到意外情况。
同步您的音乐或照片收藏可能并不重要,但如果您使用它来备份您的系统,那么同步就至关重要。
还有另一个程序 s3cmd 可以保存这些数据并完成类似的工作。它的速度较慢。但我还没有尝试过。
有人告诉我,问题在于你会保持高成本,因为在 S3 中你不仅要为节省的每 MB 付费,还要为请求付费,而 rsync 会发出很多请求。