2016-08-12 22 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。必須提升權限纔會要求您輸入密碼。這可能有助於您重新設計您的方法。