【问题标题】:WGET seems not to work with user data on AWS EC2 launchWGET 似乎不适用于 AWS EC2 启动时的用户数据
【发布时间】: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.logwget 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


【解决方案1】:

当您执行cd 命令时,您无法知道当前的工作目录。所以指定完整路径:

cd /home/centos/testing

试试这个:

#!/bin/bash
mkdir /home/centos/testing
cd /home/centos/testing 
wget https://validlink

【讨论】:

    【解决方案2】:

    使用 root 用户运行它。

    试试这个:

    #!/bin/bash
    sudo su
    yum -y install wget
    mkdir /home/centos/testing
    cd /home/centos/testing 
    wget https://validlink
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2019-07-03
      • 1970-01-01
      • 2017-12-25
      • 1970-01-01
      • 2020-01-17
      • 1970-01-01
      • 2013-03-23
      • 2017-12-18
      相关资源
      最近更新 更多