【发布时间】:2021-06-12 02:23:07
【问题描述】:
我们的服务器在 AWS (ec2) 上,我必须在 200 台服务器上运行相同的命令集,并且需要在我的终端上输出。我有可以访问所有 200 台服务器的堡垒实例。这个问题最初是在 2015 年提出的。 我有一个在机架空间上运行良好的脚本,但在 AWS 上,默认用户是 ec2-user,所以我需要根据 ec2-user 调整脚本或在 ssh 期间切换到 root 用户。
是否有任何语法问题或缺少什么? 我的脚本名称是 runOnAppServer.sh,然后是包含所有 ips 的文件,然后是前面提到的命令文件 --> runOnAppServer.sh server_ip scriptFile
下面会提到脚本
#!/bin/bash
# The private key used to identify this machine
IDENTITY_KEY=/home/sshKey.pem
syntax()
{
echo "Syntax: runOnAppServer.sh server_ip scriptFile]"
echo "For example: ./runOnAppServer.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
EOT
echo "Done"
【问题讨论】:
-
你的脚本是否告诉它退出?
-
不,它显示远程访问,我必须手动输入才能注销
-
尝试在你的 ssh 命令中使用 logout 命令
标签: linux bash amazon-web-services shell amazon-ec2