linux - 一个 bash shell 程序等待列表中的所有服务器启动,然后运行启动脚本
问题描述
我正在尝试自动启动(重新启动后)在 12 个 Linux 7 服务器的网格上运行的应用程序。
12 台服务器以随机顺序重新启动。
在启动驻留在 12 台服务器上的应用程序之前,所有服务器都需要运行。
我想做的是测试所有 12 台 Linux 7 服务器是否都已启动,然后当所有 12 台服务器都启动时,我将继续执行命令的启动序列。
所有 12 台服务器都设置了 ssh 密钥。
猫服务器列表.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 秒。
推荐阅读
- python - 无法从列表中捕获值并将“K”转换为“000”
- python - sphinx-apidoc 为在 __init__.py 中重新导出的类生成文档
- c# - “AddPermission”时的C#应用程序域异常,说绝对路径是必需的?
- sql - 在一列中选择可选数量的值
- docker - docker-composer up -d 得到错误 postgres: Bind for 0.0.0.0:5432 failed: port is already assigned
- c# - 查找同级控件的属性
- ios - 使用 Apple Pencil 功能创建笔记编辑器?
- visual-studio-2019 - 如何在 Visual Studio 2019 中使用 .NET 4.6.2 版运行单元测试?
- python - 算法的复杂性(威尔逊测试)
- python - 如何绘制附加到 3 个不同过滤器的权重?