【发布时间】:2019-03-24 12:39:27
【问题描述】:
我正在使用带有 ubuntu 18 ami 的 ec2 实例, 用户数据脚本如下:
#!/bin/bash
sudo apt-get update -y
sudo apt-get install python-pip -y
sudo apt-get install awscli -y
mkdir /home/ubuntu/dir
aws s3 sync s3://art-meta-data ./art-meta-data
它只是部分执行的脚本,它安装了 pip,执行了 apt-get 更新,安装了 awscli,但不同步存储桶,也不创建目录。
我没有收到任何错误(也许我的位置不对?)当我尝试创建目录并通过 ssh 同步 bucker 时,它运行良好,这意味着 s3 权限和 os 权限很好.
这可能是什么问题?我还应该检查什么?
编辑: 我找到了this - 解释了每次停止和启动实例时如何让脚本运行,但没有解释为什么添加的元编码会改变任何东西。谁能指出我为什么这个脚本与常规 bash 脚本的工作方式不同的一些参考?
【问题讨论】:
-
你认为
./art-meta-data会去哪里?我猜它会在root用户或/root的主目录中。它是在那里创建的吗? -
作为用户数据输入的脚本以 root 用户身份执行。创建的任何文件都将归 root 所有。
-
“当我尝试创建目录并通过 ssh 同步 bucker 时,它可以完美运行” - 这是什么意思?您是在实例上还是在本地机器上运行脚本?另一个需要注意的重点是,如果没有要同步的内容,您将不会收到任何输出。
-
@thebeancounter,检查 /var/log/cloud-init-output.log 中的 cloud-init 输出日志文件,并在输出中查找错误消息。
-
我将检查同步并更正为完整路径,我无法解释 mkdir 问题,这是完整路径,不会创建任何目录。知道那里可能出了什么问题吗?
标签: amazon-web-services ubuntu amazon-s3 amazon-ec2 user-data