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