Rsync到AWS S3存储桶


26

对于服务器,我正在托管一个网站,我想将数据和设置备份到S3存储桶中。我发现您不能直接使用rsync备份到S3存储桶。是否有另一种方法可以实现以下rsync命令将数据备份到S3存储桶?

rsync -­av ­/Data /s3bucket

我还想将该服务器上的mysql数据库备份到S3存储桶。实现此目标的最佳方法是什么?

最后一个问题,如果我设法将所有内容备份到S3。如果服务器崩溃或在最坏的情况下被完全擦除,恢复服务器的最佳方法是什么?我是否必须自己记下服务器设置并重新配置服务器,或者是否可以备份此服务器?

Answers:


35

要与s3通信,您需要具备2件事

  1. 具有s3存储桶读写访问权限的IAM用户凭据。
  2. 像aws-cli这样的客户端适用于bash,boto库则适用于python等。

两者兼有之后,您可以将任何文件从计算机传输到s3,也可以从s3传输到计算机。以下是aws-cli的示例。

  1. 同步文件夹中的所有文件

    aws s3 sync source_folder s3://your_bucket_name/destination_folder/

  2. 将一个文件复制到s3

    aws s3 cp source_file s3://your_bucket_name/destination_folder/

只需替换命令中的源和目标即可从s3下载任何文件。

有关更多信息,请关注aws文档


1
注意:您可能需要先运行“ aws configure”,以便存储您的凭据,因此您不必在每次同步时都输入它们。
— 蒂姆·伯奇

1
值得指出的是,先rsync计算客户端和服务器端的校验和,然后将它们进行比较以准确确定文件是否已更改。而aws s3 sync没有-它使用文件大小和时间戳。如果我错了,请有人纠正我?
— Lqueryvg

13

您可以尝试rclone。

设置(docs):

rclone config

同步(docs):

rclone sync /my/local/folder s3service:bucket-name

2
rclone是一个很棒的小工具!
— 安德鲁·奥登达尔

1
1+ rclone,我发现它很容易使用,并且开发人员似乎异常活跃和参与
— adampski

听起来不错,但您能否详细说明使用aws s3 sync的优点是什么?
— 库奇

它满足OP使用rsync的要求。我还没有使用s3 sync或rclone和s3,所以我不知道了。
— 基思
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.