如何使用大量命令在bash脚本中执行ssh?

时间:2014-08-13 10:03:02

标签: linux bash ssh

我尝试在bash脚本中运行以下命令,但只调用./install.sh rereplica。其余的命令根本没有被调用。

  ssh $node2user@$node2 "cd /tmp; tar -xf $mmCS.tar; cd $mmCS; ./install.sh csreplica; ./install.sh keepalived $vip low;./install.sh haproxy $node1:8080 $node2:8080 $vip:8080; ./install.sh confmongo $dbPath"

2 个答案:

答案 0 :(得分:0)

如果我必须使用SSH执行复杂脚本,我通常在本地编写脚本,使用SSH将其复制到目标计算机上,然后在那里执行:

scp foo.sh $node2user@$node2:
ssh $node2user@$node2 "bash ./foo.sh"

这样,我可以通过使用bash -x调用脚本来调试脚本,我可以使用BASH的全部功能。

或者,您可以使用

ssh $node2user@$node2 "set +x; cd /tmp; ..."

答案 1 :(得分:0)

您可以在标准输入上为ssh提供脚本:

ssh $node2user@$node2 < my_script.sh