我正在尝试逐个ssh到2台服务器并运行以下命令:
sudo node app.js
这是我的代码:
#!/bin/bash
while read line; do
ssh -i "sshtest.pem" ec2-user@$line "sudo node app.js"
done < ips.txt
执行sudo节点app.js后,控件不会传递给循环中的下一个ip。有人能指出我可以做些什么来改善这一点吗?
答案 0 :(得分:1)
在ssh之后尝试退出:
#!/bin/bash
COMMAND="sudo node app.js && exit"
PEM="sshtest.pem"
USER="ec2-user"
IN="ips.txt"
while read LINE; do
ssh -i $PEM $USER@$LINE $COMMAND
done < $IN
如果您不想阻止,请为每个ssh提供背景:
#!/bin/bash
COMMAND="sudo node app.js && exit"
PEM="sshtest.pem"
USER="ec2-user"
IN="ips.txt"
while read LINE; do
ssh -i $PEM $USER@$LINE $COMMAND &
done < $IN
您将遇到的最大问题是sudo
。必须提升权限才需要输入密码。这可能有助于您重新设计方法。