$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 секунды.
