繁体   English   中英

ec2每次启动都会运行脚本

[英]ec2 run scripts every boot

我在这里关注了一些帖子,试图在每次启动后在我的ec2实例上运行python或shell脚本,而不仅仅是第一次启动。

我试过了:

[scripts-user,始终]到/etc/cloud/cloud.cfg文件

  • 在./scripts/per-boot文件夹中添加了脚本

将脚本添加到/etc/rc.local

  • 是的/etc/rc.local的权限已更改为755

我试图将文件的输出传递到位于/ home / ubuntu /目录中的文件,并且该文件在引导后不包含任何内容。

如果我手动运行脚本(.sh或.py),它们就可以工作。

有任何建议或要求提供其他信息以帮助您吗?

这是你想要的东西吗?

它将脚本复制到实例,连接到实例,并立即运行脚本。

ec2 scp ~/path_to_script.py : instance_name -y && ec2 ssh instance_name -yc "python script_name.py" 1>/dev/null

我读到rc.local的使用已被弃用。 要尝试的一件事是/ etc / crontab中的一行,如下所示:

@reboot完整的脚本路径

如果您希望将脚本作为特定用户运行,则可以在@reboot之后列出该脚本。

因此,当前的解决方案似乎是我在我的初始问题帖子中写下的一种方法,因为我可能没有像下面链接中的大纲那样完成设置...

此链接 - > 如何在每次启动EC2实例时运行cloud-init启动脚本?

该链接显示如何修改/etc/cloud/cloud.cfg文件以将脚本用户更新为[scripts-user,always]

此链接还表示将* .sh文件添加到/ var / lib / cloud / scripts / per-boot目录。

重启系统后,您的脚本应该已执行,您可以在以下位置验证: sudo cat /var/log/cloud-init.log

如果您的脚本仍然无法执行,请尝试使用以下命令擦除服务器的实例状态: sudo rm -rf / var / lib / cloud / instance / *

- 注意: - 看起来python脚本中的打印命令不按预期管道(>>)但是echo命令很容易管道

无法管道 sudo python test.py >> log.txt

管道成功 echo "HI" >> log.txt

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM