4

У меня есть скрипт bash, который использует rsync для резервного копирования файлов с двух удаленных рабочих станций (unix и linux) на локальный жесткий диск. Я хочу, чтобы скрипт проверял работоспособность рабочей станции перед запуском rsync. Самый простой способ, который я мог придумать, это использовать ping:

ping -s 1 -c 1 $SERVN > /dev/null; echo $?

Это прекрасно работает на одной рабочей станции, но по соображениям безопасности на другой отключен пинг. Я попробовал nc, и это также не работает. Я также пытался "пинговать" машину, используя ssh или rsync, но, конечно, я получаю запрос пароля, который в первую очередь не поддается цели. У кого-нибудь есть предложения или идеи? Спасибо

3 ответа3

2
nc -z $REMOTESERVER 22 
echo $?

Если вы используете SSH для выполнения rsync, этот порт должен быть открыт.

1
ssh $REMOTESERVER -o PasswordAuthentication=no

Это должно попытаться подключиться через SSH, но не будет запрашивать пароль, так как этот метод отключен этой опцией.

Предостережение: эта попытка подключения может быть засчитана как "неудачный вход в систему", и вы можете заблокировать себя, например, если вы используете DenyHosts.

-1
hping $REMOTESERVER -S -p 22 -c 2 >/dev/null 2>&1; echo $?

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