如何验证节点“ssh”是否可达?(已连接或断开连接)

如何验证节点“ssh”是否可达?(已连接或断开连接)

我有以下 IP 地址列表:

172.16.65.74
172.16.65.75
172.16.65.76
172.16.65.77

我在每个主机上都有一个名为“replicas.txt”的文件(所有主机上都有同一个文件)。我的目标是获取这些副本文件的一个副本。

我想验证 172.16.65.74 是否可访问,如果已断开连接,我将测试第二台机器 172.16.65.75,如果已连接,我将文件 replicas.txt 复制到我当前工作的主机上。

那可能吗 ?

谢谢。祝好。

答案1

你可以编写一个非常基本的 bash 脚本,如下所示:

#!/bin/bash

mymachines=(172.16.65.74 172.16.65.75 172.16.65.76 172.16.65.77)

for machine in "${mymachines[@]}"; do
  echo "Trying to access $machine ..."
  if `scp -o ConnectTimeout=5 yourlogin@$machine:/path/to/my/file ./`; then
     echo "Succeeded."
     break;
  else
     echo "Failed, trying next if available..."
  fi
done

这将逐个选择主机并尝试将远程文件复制到本地文件系统。如果其中任何一个成功,则退出;否则,它将继续循环到下一个可用的机器。

相关内容