У меня есть этот список 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 текущего хоста, на котором я работаю.

Это возможно ?

Спасибо. Bests.

1 ответ1

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

Это подберет хосты один за другим и попытается скопировать этот удаленный файл в вашу локальную файловую систему. Если какой-либо из них преуспевает, тогда это выходит; в противном случае он продолжит цикл до следующей доступной машины.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .