我在EC2实例上有一个远程启动另一个实例的脚本.
一旦这个实例完全加载(完成启动),我希望它自动运行一个bash脚本,最好的方法是什么?
我需要完全启动所有内容,基本上bash脚本运行图像转换脚本(使用ImageMagick并执行“wget”命令几次)
目前,脚本位于此处:
/home/root/beginProcess.sh
我可以通过执行手动启动它
bash beginProcess.sh
RHEL-6.2-育雏EBS-I386
此外还有一个附加的EBS卷,如果有帮助的话,谢谢!
解决方法
我建议只使用
user-data选项来运行ec2-run-instances.它允许您为VM提供某种类型的脚本,该脚本将在首次启动时运行.如果您使用的是ubuntu或debian,则可以使用
cloud-init,这样就可以对这个过程进行一些改进.如果使用cloud-init,则可以使用配置文件的[runcmd]部分指定在引导后运行的任意命令.
感谢SF用户Eric Hammond的用户数据页面.查看他的site – 它有关于AWS的大量信息.
编辑:重新读取后,不清楚是否要在初始启动或每次启动时运行命令.以上说明仅适用于初始引导.如果你想在每次启动时运行一个命令,你有几个选项 – 你可以通过@reboot cron指令运行命令,或者你可以将脚本添加到/etc/rc.local,每次都会运行系统启动.