【发布时间】:2017-09-25 13:19:50
【问题描述】:
我启动了一个我创建的 centos AMI,并尝试将用户数据添加为如下所示的文件:
#!/bin/bash
mkdir /home/centos/testing
cd testing
wget https://validlink
简单地说,在启动时,用户数据会创建一个名为 testing 的文件夹并下载此 validURL,因为它链接到我的数据,所以我不会放它 - 但它是有效且可访问的。
当我启动实例时,文件夹testing 已成功创建,但目录中没有文件。
当我 ssh 进入实例,并以 sudo 运行 wget 命令时,文件已成功下载到 testing 文件夹中。
为什么在 ec2 启动时没有通过用户数据下载文件?
【问题讨论】:
-
您可以使用 wget 标志
--output-file=wget_error.log或wget https://validlink 2> wget_error.log来捕获标准错误。或许这会对问题有所启发。如果仍然不清楚,请考虑标志-v用于“详细”和-d用于“调试输出”并将stderr 和stdout 重定向到日志wget https://validlink -v &> wget_output.log作为一个想法,也许这个命令在您的网络之前执行机器上设置好接口了吗? -
我假设一旦机器在 AWS 上启动,用户数据就会被执行。我现在将尝试输出日志并为您提供更新。谢谢
-
啊“用户数据”现在知道了。我对这个词很陌生。我同意在网络接口上线之前执行用户数据脚本听起来不太可能。
-
所以更新,文件似乎下载成功,但我不确定它的位置。所以它应该在 testing 文件夹中,但是它在这个位置 /test.txt - 它应该在 /home/centos/testing
-
由于脚本是以 root 身份进入的,也许将
cd命令更改为绝对路径,或者使用wget-o和要写入的绝对路径和文件名。
标签: bash amazon-web-services amazon-ec2 user-data