amazon-web-services - 将 AWS S3 存储桶同步到 EC2 服务器

标签 amazon-web-services amazon-ec2 amazon-s3 cron

我正在尝试使用 rsync 将我的 S3 存储桶与我的 EC2 服务器同步。但是,我在编写代码时遇到了麻烦。在我的 EC2 服务器上,我尝试了以下操作,但不起作用。我知道我的 S3 地址是错误的,但我不知道该放什么。 iosSourceCode 是存储桶名称。如何将此存储桶中的文件同步到我的 EC2 服务器的文件?在我开始工作后,我将设置一个 cronjob 来每 10 分钟或其他任何时间执行此操作。有没有更好的方法来做到这一点,如果有的话怎么做?请提供代码,谢谢!

sudo rsync -ra iosSourceCode.s3-website-us-east-1.amazonaws.com /var/www/

最佳答案

你可以使用这个命令:

aws s3 --region <your region name> sync s3://<your bucket name> /your/directory/path

所以在你的情况下:
aws s3 --region us-east-1 sync s3://osSourceCode.s3-website /var/www/

这是一种单向同步(在本示例中仅从 S3 下载更新),因此如果您想双向同步,则需要两个命令,源和目标交换:
aws s3 --region us-east-1 sync s3://osSourceCode.s3-website /var/www/
aws s3 --region us-east-1 sync /var/www s3://osSourceCode.s3-website

您可以将其添加到 crontab 条目以使其定期发生,如以下示例所示:
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin:/opt/aws/bin
MAILTO=root
HOME=/

*/2 * * * * root aws s3 sync --region ap-southeast-2 /var/www/html s3://mywebsitecode/ >> /usr/local/logs/aws.log 2>&1
*/5 * * * * root aws s3 sync --region ap-southeast-2 s3://mywebsitecode/ /var/www/html >> /usr/local/logs/aws.log 2>&1

关于amazon-web-services - 将 AWS S3 存储桶同步到 EC2 服务器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24877016/

相关文章:

scala - AWS S3 中的 FileUtil.copyMerge()

amazon-web-services - AWS Step 无法正确调用具有复杂参数的 AWS Batch 作业

amazon-web-services - Amazon Lightsail 比 EC2 便宜多少?

amazon-web-services - 使用具有多个资源的 tag_secifications 设置启动模板

logging - 安排特定文件存储在 AWS 的 EBS 卷上

ruby-on-rails - SSHKit::Runner::ExecuteError:在主机 xx.xx.xx.xx 上执行时出现异常:连接被远程主机关闭

amazon-web-services - 如何将 key 从桌面导入到 cloudformation 模板?

amazon-web-services - ECS 是否使用 Docker 层缓存来加速部署?

django - 将图像上传到 Django admin,进行裁剪和缩放,然后将其发送到 Amazon S3,而不在本地保存文件?

hadoop - 在集群部署模式下运行 spark 提交作业失败但通过客户端