Как проверить статус удаленного SSH-сервера с помощью Telnet (не требуется вход в систему)

$if [[ "$(sleep 1 | telnet -c 2>&1 | grep '^SSH')" == SSH* ]]; then ; else ; fi;


Данная команда проверяет статус удаленного SSH-сервера с помощью Telnet, без необходимости входа в систему.

Описание команды:
sleep 1 — задержка на 1 секунду для стабильного соединения
telnet -c — подключение к указанному хосту и порту с использованием Telnet (опция -c включает канонический режим для исправления некоторых проблем)
2>&1 — перенаправление ошибок в стандартный вывод
grep '^SSH' — фильтрация строк, начинающихся с «SSH»
"$(...)" — выполнение команды в подоболочке и возвращение ее вывода
[[ ... ]] — условная конструкция в Shell
then — если условие выполнено (наличие строки «SSH»), выполняется указанная команда
else — если условие не выполнено (отсутствие строки «SSH»), выполняется другая команда

Альтернативным способом для проверки статуса удаленного SSH-сервера может быть использование утилиты nc (Netcat), например nc -z -w2 , где -z означает сканирование порта, -w2 задает таймаут в 2 секунды.

Ответить

Ваш адрес email не будет опубликован. Обязательные поля помечены *