我正在尝试使用 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/