EC2命令行工具

时间:2012-05-10 01:20:35

标签: bash amazon-ec2

我正在尝试设置亚马逊的EC2服务并遇到一些麻烦。

我已下载了Amazon EC2 API Tools,我已将其放在文件夹~/.ec2中以及我的.cert.pem文件中。

当我尝试~/.ec2/bin的任何命令时,我收到错误/Users/zmjones/.ec2/bin/ec2-cmd: /usr/bin/env: bad interpreter: Operation not permitted。我在"/usr/bin/env bad interpreter"中询问了这个问题。

现在我已经使用此mv /users/zmjones/.ec2/bin/ec2-add-keypair /users/zmjones/.ec2/bin/ec2-add-keypair.bak tr -d '\r' < /users/zmjones/.ec2/bin/ec2-add-keypair.bak > /users/zmjones/.ec2/bin/ec2-add-keypair的变体删除了DOS行尾,我试图执行~/.ec2/bin中的一些命令并且无法使其工作。

我收到了一个权限被拒绝错误,当我使用sudo时,告诉我环境变量EC2_HOME不存在,而echo $EC2_HOME表示它确实存在。这是我的~/.bash_profile

PATH=/usr/bin:/bin:/usr/sbin:/sbin:/opt/local/bin:$PATH
PATH=/opt/local/sbin:/usr/local/bin:/usr/x11/bin:/usr/texbin:$PATH
PATH=/usr/local/texlive/2011/bin/x86_64-darwin:$PATH
PATH=/Library/Frameworks/EPD64.framework/Versions/Current/bin:$PATH
EC2_HOME=~/.ec2
PATH=$EC2_HOME/bin:$PATH
EC2_PRIVATE_KEY=`ls $EC2_HOME/pk-*.pem`
EC2_CERT=`ls $EC2_HOME/cert-*.pem`
JAVA_HOME=/System/Library/Frameworks/JavaVM.framework/Home/

export PATH

2 个答案:

答案 0 :(得分:2)

您收到“权限被拒绝”错误,因为未在修改后的脚本上设置执行(+ x)​​位。

请勿使用sudo来解决此问题。

只需设置+ x位:

chmod +x /users/zmjones/.ec2/bin/ec2-add-keypair

(对于具有固定行结尾的其他脚本也是如此)。

sudo无效的原因是默认情况下,它以干净的环境开始,没有EC2_HOME和其他环境变量。

您不希望使用sudo来解决问题的原因是,使用sudo运行以root身份运行整个程序,这有可能在你的系统上做坏事。至少,它可能会在本地目录中创建由root拥有的文件或子目录,然后您必须采取额外的步骤来修改/删除。在最坏的情况下,程序中的错误可能会消灭整个系统或其中的重要部分。

答案 1 :(得分:0)

如果ls -al@显示com.apple.quarantine extended attrib,则不会执行这些文件。你需要

xattr -d com.apple.quarantine filename