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.