2016-08-12 9 views
1

をapp.js私は2台のサーバーに一つずつSSHおよび次のコマンドを実行しようとしている:スクリプトインスタンスにSSHで接続するには打ち上げノードが

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です。権限を昇格させるには、パスワードを入力する必要があります。これはあなたのアプローチを再設計するのに役立ちます。

関連する問題