Я пытаюсь каталогизировать, какие SMTP-серверы используются в гетерогенном пуле серверов, и до сих пор я делал:
echo "HELO localhost" | telnet localhost 25 2>/dev/null | grep 220
#process the output of command
Моя проблема в том, что сервер не всегда успевает ответить «220 ...» до закрытия сокета.
Поэтому я ищу относительно короткий скрипт на основе bash, который был бы немного более надежным. Я не смог найти простой способ заставить команду подождать несколько секунд перед закрытием TCP-соединения.
Я пытался expect
но я не могу заставить его работать, и для этого требуется внешний файл, который не совсем подходит для моего пакета аудита, и я не могу быть уверен, что он будет доступен на всех серверах.
Есть простые идеи?
РЕДАКТИРОВАТЬ: версии (да, старые, я знаю):
- Баш-2.05b-41,7
- Coreutils-4.5.3-28.1
- Linux-2.4.21