bash脚本访问ec2实例

时间:2015-03-13 21:08:49

标签: linux bash shell

这个脚本需要一个ip和我们必须在远程服务器上运行的脚本或文件我给了一个文件,其中我写了像

这样的命令
touch /root/test
ls  /root/test

这会使文件生效,但不显示,并且显示错误

tcgetattr:设备不适当的ioctl

连接关闭

如何解决这个问题?

#!/bin/bash

# The private key used to identify this machine

IDENTITY_KEY=/home/admnew.pem

syntax()
{

    echo "Syntax: Ec2.sh server_ip scriptFile]"

    echo "For example: ./Ec2.sh server_ip scriptFile"

    exit 1
}

if [ $# -ne 2 ]

then

    echo not enough arguments

    syntax
fi


        echo "Running script $2 on $1"

        ssh -t  -t  -i $IDENTITY_KEY ec2-user@$1 sudo -i 'bash -s'  < $2

        exit
exit

echo "Done"

1 个答案:

答案 0 :(得分:0)

尝试:

ssh -t  -t  -i $IDENTITY_KEY ec2-user@$1 sudo -i 'bash -s'  <<EOF
(
$(cat "$2")
)
EOF

e.g。将脚本包装到()中,例如:

touch /root/test
ls  /root/test

应该是

(
touch /root/test
ls  /root/test
)