amazon-web-services - ec2 用户数据脚本仅部分执行
问题描述
我正在使用带有 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 权限很好。
这里可能是什么问题?我还应该检查什么?
编辑:我发现了这个- 解释了每次停止和启动实例时如何让脚本运行,但没有解释为什么添加的元编码会改变任何东西。谁能给我一些参考,说明为什么这个脚本与普通 bash 脚本的工作方式不同?
解决方案
最好在同步命令上描述完整路径,以避免在错误的位置创建。
#!/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
推荐阅读
- python - 如何修复 QPropertyAnimation“开始没有结束值的动画”错误
- java - 为什么单击应用栏中的 + 图标后应用会崩溃?显示空指针异常
- python - 如何让安装在 venv 中的包显示在 PyCharm 项目中?
- php - 如何从源代码构建作曲家?
- .htaccess - 使用 htaccess 在子文件夹中镜像站点
- linux - 如何理解这个 shell 脚本?
- javascript - 如何在此处使用 javascript 选择单个元素?
- java - 使用 multipart/form-data 将文件上传到服务器
- c# - 简单的闪烁文本
- python-3.x - 使用 PIL/OpenCV/Matplotlib 加载大型 .JP2 图像时,如何避免“分段错误(核心转储)”错误?