2016-08-12 2 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 node app.js элемент управления не переходит к следующему ip в цикле. Может кто-нибудь указать мне, что я могу сделать, чтобы улучшить это?

ответ

1

Try выход после 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. Для повышения привилегии вам потребуется ввести пароль. Это может помочь вам перепроектировать ваш подход.

Смежные вопросы