SSH到实例和启动节点app.js的脚本

时间:2016-08-12 12:44:44

标签: javascript node.js ssh

我正在尝试逐个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。有人能指出我可以做些什么来改善这一点吗?

1 个答案:

答案 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。必须提升权限才需要输入密码。这可能有助于您重新设计方法。