执行脚本后停止 EC2 实例

发布于 2024-12-07 13:05:43 字数 207 浏览 1 评论 0原文

我将 ubuntu 服务器(AWS ec2 实例)系统配置为 cronserver,在 4:15-7:15 和 4:15 之间运行 9 个 cronjobs。 21:00-23:00。我在其他系统(ec2 实例)上编写了一个 cron 作业,以在 7:15 后停止此 cronserver 并在 21:00 再次启动。我希望 cronserver 在执行最后一个脚本后自行停止。是否可以写这样的脚本。

I configured a ubuntu server(AWS ec2 instance) system as a cronserver, 9 cronjobs run between 4:15-7:15 & 21:00-23:00. I wrote a cron job on other system(ec2 intance) to stop this cronserver after 7:15 and start again @ 21:00. I want the cronserver to stop by itself after the execution of the last script. Is it possible to write such script.

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。

评论(2

塔塔猫 2024-12-14 13:05:43

当您启动临时实例时,指定

--instance-initiated-shutdown-behavior terminate

然后,当实例完成所有任务时,只需运行相当于

sudo halt

sudo shutdown -h now

使用上述标志,这将告诉实例从实例内部关闭应该终止实例(而不是仅仅阻止它)。

When you start the temporary instance, specify

--instance-initiated-shutdown-behavior terminate

Then, when the instance has completed all its tasks, simply run the equivalent of

sudo halt

or

sudo shutdown -h now

With the above flag, this will tell the instance that shutting down from inside the instance should terminate the instance (instead of just stopping it).

标点 2024-12-14 13:05:43

是的,您可以将 ec2stop 命令添加到最后一个脚本的末尾。

您需要:

  • 安装 ec2 api 工具

  • 将您的 AWS 凭证放在实例上,或创建有权停止实例的 IAM 凭证

  • 获取实例 id,可能从 inIstance-data

另一种选择是运行cron 作业作为来自控制实例的命令。主 cron 作业可能如下所示:

  • 运行处理实例
    -等待 sshd 接受
  • ssh 到处理实例的连接,运行每个处理脚本
  • 停止处理实例

这种方法可以连续完成所有处理作业,使实例保持最短的时间。将凭证放在实例上。

如果您的用例允许终止而不是停止实例,那么您也许可以使用 EC2 自动扩展来替换启动/停止 cron 作业。它现在可以显示正在运行的实例的时间表。

http://docs.amazonwebservices.com/AutoScaling/latest/DeveloperGuide /index.html?scaling_plan.html

Yes, you can add an ec2stop command to the end of the last script.

You'll need to:

  • install the ec2 api tools

  • put your AWS credentials on the intance, or create IAM credentials that have authority to stop instances

  • get the instance id, perhaps from the inIstance-data

Another option is to run the cron jobs as commands from the controlling instance. The main cron job might look like this:

  • run processing instance
    -wait for sshd to accept connections
  • ssh to processing instance, running each processing script
  • stop processing instance

This approach gets all the processing jobs done back to back, leaving your instance up for the least amount of time., and you don't have to put the credentials on thee instance.

If your use case allows for the instance to be terminated instead of stopped, then you might be able to replace the start/stop cron jobs with EC2 autoscaling. It now sports schedules for running instances.

http://docs.amazonwebservices.com/AutoScaling/latest/DeveloperGuide/index.html?scaling_plan.html

~没有更多了~
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文