EC2 用户数据脚本.sh文件和手动执行不同



我正在尝试执行以下用户数据脚本

sudo wget https://files.mysite.com/downloads/myFile.tar -P /opt
sudo tar -xvf /opt/myTar.tar -C /opt
sudo /opt/myFile.sh

当我手动执行.sh文件时,我看到以下内容:

Extracting...
Unpacking...
Cleaning up...
Complete

它会在/opt/myDirectory中创建一个目录

确实/var/log/cloud-init-output.sh中看到控制台,但是当作为userdata脚本的一部分运行时,它似乎没有创建目录。

你在 shell 脚本中调用 shell 脚本,因此您需要确保:

  1. 将此作为 EC2 用户数据脚本的第一行#!/bin/bash

  2. 使用source命令(别名为.(调用myFile.sh,如下所示:. /opt/myFile.sh因此它将运行 myFile 脚本

注意:ec2 用户数据脚本以 root 用户身份运行,因此您不需要在每次运行命令时都sudo

解决方案:首先将 CD 放入目录。

#!/bin/bash
cd /opt
wget https://example.com/myTAR.tar
tar -xvf myTAR.tar
/opt/mySH.sh

最新更新