【问题标题】:Multiple remote SSH through bash scripting通过 bash 脚本编写多个远程 SSH
【发布时间】:2011-09-14 09:03:31
【问题描述】:

大家好,

我正在尝试在一台主机上运行服务器,并让位于 3 个不同主机上的 3 个客户端同时运行(在后台)。

我为此编写了一个 bash 脚本。问题是脚本当前不等待客户端完成:它按顺序在每个主机上 ssh。我想让 3 台主机并行运行。

代码如下:

#!/bin/bash
i="0"
dir="~/bin/"

while [ $i -lt 3 ]
do
  let number=10+$i
  ssh sshost$number 'cd $dir && java Main &' 
  let i=$i+1
done

我正在尝试 ssh 到 3 个不同的主机(每次迭代都会更改编号),然后转到目录并键入 java Main。我唯一的问题是它不会并行执行,而且我不知道如何解决它。

我将不胜感激。

非常感谢。

【问题讨论】:

  • ssh sshost$number 'cd $dir && java Main &' &

标签: bash ssh


【解决方案1】:

让 ssh 命令在后台运行:

ssh sshost$number 'cd $dir && java Main &' &

你可以在while循环之外调用wait

【讨论】:

  • @Jary 调用 wait 内置函数?
  • 你不需要 ssh 命令中的 &,虽然它没有太大区别
猜你喜欢
  • 2012-04-14
  • 2018-10-30
  • 2018-03-26
  • 2014-08-29
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-26
  • 2011-05-09
相关资源
最近更新 更多