2016-08-12 39 views
1

我想逐一ssh到2台服务器,并运行以下命令:脚本SSH到实例和发射节点app.js

sudo node app.js 

这里是我的代码:

#!/bin/bash 
while read line; do 
    ssh -i "sshtest.pem" [email protected]$line "sudo node app.js"  
done < ips.txt 

执行sudo节点app.js后,控制权不会转移到循环中的下一个ip。有人能指出我可以做些什么来改善这一点吗?

回答

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 [email protected]$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 [email protected]$LINE $COMMAND & 
done < $IN 

你将有最大的问题是与sudo。必须提升权限才会要求您输入密码。这可能有助于您重新设计您的方法。