【问题标题】:AWS S3 Sync command at ec2 instance startupec2 实例启动时的 AWS S3 Sync 命令
【发布时间】:2020-06-16 13:44:00
【问题描述】:

我想在我的 EC2 启动时运行以下命令。这是一个 ubuntu 18.04 盒子。我已经尝试过 crontab (@reboot),根据文章 User Data 的用户数据启动脚本。我可以看到该命令在两种情况下都在运行(我创建了一个输出日志文件),但实际上它并没有完成同步。如果我在终端中手动运行此命令,则效果很好。

aws s3 sync s3://mybucket s3://mybucket2

是的,我尝试重新启动,并且也尝试了 aws 链接脚本。请参见下面的文件结构和 crontab 表达式。 s3sync.log 是空的。看起来像 cron 运行,但它没有完成命令。或者别的什么

-rw-rw-r-- 1 ubuntu ubuntu        0 Jun 16 14:55 s3sync.log
-rwxrwxr-x 1 ubuntu ubuntu       58 Jun 16 14:44 s3sync.sh

@reboot sh /home/ubuntu/s3sync.sh > /home/ubuntu/s3sync.log

Content of s3sync.sh

aws s3 sync s3://mybucket s3://mybucket2

【问题讨论】:

  • 它会给出一些错误吗?您在 cloudwatch 等中有一些日志吗?
  • 我更新了我的问题没有错误

标签: amazon-web-services shell amazon-ec2


【解决方案1】:

用户数据只会在实例第一次启动时执行。

您有 3 个选项:

  • @reboot cron 选项
  • 创建systemd service 以在重启时执行任务
  • 等待实例状态变为“运行”并调用 SSM 命令来触发此操作,当 EC2 实例状态变为运行时使用CloudWatch Events to detect

【讨论】:

  • 默认情况下,用户数据脚本仅在 EC2 实例启动的第一个引导周期内运行,但您可以更改该行为。见aws.amazon.com/premiumsupport/knowledge-center/…
  • 是的,应该是这样,我已经更新了我的问题,但它没有同步 s3 中的文件
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-11-03
  • 1970-01-01
  • 1970-01-01
  • 2019-08-03
  • 2019-06-26
  • 2016-11-22
相关资源
最近更新 更多