ec2用户数据脚本仅部分执行

时间:2018-10-19 15:22:26

标签: amazon-web-services ubuntu amazon-s3 amazon-ec2 user-data

我在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脚本不同?

2 个答案:

答案 0 :(得分:1)

最好在sync命令上描述完整路径,以避免在错误的位置创建

#!/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 /home/ubuntu/dir/art-meta-data

答案 1 :(得分:1)

您可以检查EC2系统日志以查看失败命令的输出。这实际上是调试用户数据脚本中的问题的唯一方法。

再次检查您的实例配置文件可以访问该存储桶,并且您使用的是正确的arn来引用存储桶