linux - 一个 bash shell 程序,等待列表中的所有服务器启动,然后运行启动脚本

标签 linux shell

我正在尝试自动启动在 12 台 Linux 7 服务器网格上运行的应用程序(重启后)。

12 台服务器以随机顺序重新启动。

在启动驻留在 12 个服务器上的应用程序之前,所有服务器都需要运行。

我想做的是测试所有 12 台 Linux 7 服务器是否都已启动,然后当所有 12 台服务器都已启动时,我将继续执行命令的启动序列。

所有 12 个服务器都设置了 ssh key 。

猫服务器列表.txt 10.0.0.6 10.0.0.7 10.0.0.8 10.0.0.9 ... 10.0.0.18

我想ping一个服务器,然后等到ping成功,再转到下一个IP地址。

我为我的问题道歉。

如何编码?

从 IP 列表文件中读取第一行。 先 Ping IP 直到成功,然后再 Ping 其他 IP 地址(一次一个)直到所有 12 个都成功。

然后,运行命令以在 12 个服务器的网格上启动应用程序。

问题:如何在 bash shell 中对此进行编码。

最佳答案

内循环可以简单到

while ! ssh "${connection_string}" -o ConnectTimeout=5 true
do
    sleep 0.5
done

这会运行一个简单的命令,并在重试之间等待 0.5 秒。

关于linux - 一个 bash shell 程序,等待列表中的所有服务器启动,然后运行启动脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/54055009/

相关文章:

linux - 适合 Linux 的 SVG 渲染器?

linux - 命令在半小时内复制主目录中的所有文件

linux - 如何使用Linux命令跳过字符串开头和结尾的表达式

c - 在C中制作自己的shell

bash - 删除一段文字的最简单方法,n次

C++构造函数问题(linux)

c - 使用 XDrawString 垂直显示文本

linux - 从后台脚本运行 SSH

linux - 使用 Expect 模块更改 ldap 密码

linux - cron.daily 中的 Shell 脚本不起作用