我将ubuntu服务器(AWS ec2实例)系统配置为cronserver,9个cronjobs运行在4:15-7:15& 21:00-23:00。我在其他系统(ec2 intance)上写了一个cron作业,在7:15之后停止这个cronserver,并在21:00再次启动。我希望cronserver在执行最后一个脚本后自行停止。是否可以编写这样的脚本。
答案 0 :(得分:3)
启动临时实例时,请指定
--instance-initiated-shutdown-behavior terminate
然后,当实例完成其所有任务时,只需运行等效的
sudo halt
或
sudo shutdown -h now
使用上面的标志,这将告诉实例从实例内部关闭应该终止实例(而不是仅仅停止它)。
答案 1 :(得分:1)
是的,您可以在最后一个脚本的末尾添加ec2stop命令。
你需要:
安装ec2 api工具
将您的AWS凭据放在intance上,或创建有权停止实例的IAM凭据
获取实例ID,可能来自inIstance-data
另一种选择是将cron作业作为来自控制实例的命令运行。主要的cron工作可能如下所示:
这种方法可以连续完成所有处理作业,使您的实例保持最短的时间。并且您不必将凭据放在实例上。
如果您的用例允许终止实例而不是停止实例,那么您可以使用EC2自动扩展替换启动/停止cron作业。它现在用于运行实例的运动时间表。
http://docs.amazonwebservices.com/AutoScaling/latest/DeveloperGuide/index.html?scaling_plan.html