我尝试在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"
答案 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