EC2实例user-data脚本为cloud-init.log加日期遇报错求助
解决EC2 User-Data脚本日志时间记录及报错问题
报错原因
你遇到的Unhandled non-multipart (text/x-not-multipart) userdata警告,是因为User-Data脚本没有以shell解释器声明开头,cloud-init无法识别这是可执行的shell脚本,只会把它当成普通文本处理,导致命令无法执行。
正确实现方式
要让脚本正常执行并将时间信息输出到日志,只需在User-Data开头添加#!/bin/bash声明,确保cloud-init识别为shell脚本:
示例脚本
#!/bin/bash # 将时间信息输出到cloud-init.log(cloud-init会自动捕获脚本的标准输出/错误到该日志) echo "Start script date: $(date)" # 同时将时间写入单独的日志文件 echo "Start script date: $(date)" >> /var/log/start_script_date.log
补充说明
- cloud-init执行User-Data脚本时以root用户身份运行,因此写入
/var/log目录无需额外权限。 - 脚本执行后,你可以通过
cat /var/log/cloud-init.log或cat /var/log/start_script_date.log查看时间记录。
内容的提问来源于stack exchange,提问作者KeyB0rys
相关产品推荐
相关产品推荐

