2011-09-30 178 views
0

我将ubuntu服务器(AWS ec2实例)系统配置为cronserver,9个cronjobs在4:15-7:15之间运行,21:00-23:00之间运行。我在7:15之后在其他系统(ec2 intance)上写了一个cron作业来停止这个cronserver,并在@ 21:00重新开始。我希望cronserver在执行最后一个脚本后自行停止。是否可以写这样的脚本。若要在执行脚本后停止EC2实例

+0

您已经提出6个问题,并没有接受任何答案。再次检查它们并接受帮助你的答案。 – Nakilon

回答

2

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

--instance-initiated-shutdown-behavior terminate 

然后,当实例已完成了所有的任务,只需运行的

sudo halt 

等价
sudo shutdown -h now 

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

1

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

你需要:

  • 安装EC2 API工具

  • 把你的AWS凭据上intance,或创建有权停止实例

  • IAM凭据获取实例ID,可能来自inIstance-data

另一种选择是将cron作业作为来自控制实例的命令来运行。主要的cron作业可能是这样的:

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

连接这种方法可以将所有处理作业紧接完成,使您的实例时间最短,而且您不必将证书放在您的实例上。

如果您的用例允许实例终止而不是停止,那么您可能可以用EC2自动调节替换开始/停止cron作业。它现在运行时间表运行实例。

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