在AWS EC2启动时,WGET似乎无法使用用户数据。

3

我启动了一台我创建的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 来捕获stderr。也许这会揭示问题的一些线索。如果仍然不清楚,请考虑使用 -v 标志进行“详细”输出和 -d 标志进行“调试输出”,并将stderr和stdout重定向到日志文件中 wget https://validlink -v &> wget_output.log。作为一个想法,也许这个命令是在机器上设置网络接口之前执行的? - JNevill
由于脚本是以root身份运行的,也许将cd命令更改为绝对路径或使用wget-o选项与绝对路径和文件名一起写入会更好。 - JNevill
请尝试使用curl工具。即,curl https://validlink - Krassi Em
@JNevill 你是正确的 - 已经解决了这个问题。如果你写一个答案,我会接受它。 - deeveeABC
太好了!我很高兴你把它搞定了。看起来@helloV已经写成答案了。 - JNevill
显示剩余3条评论
2个回答

4

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

cd /home/centos/testing

试试这个:

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

0

使用root用户运行它。

尝试使用以下方法:

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

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接