У меня есть сценарий, который использует команду openssl s_client для получения сертификатов для большого набора хостов. Некоторые из этих хостов неизбежно будут недоступны из-за брандмауэра. Можно ли установить время ожидания s_client на что-то намного меньшее, чем значение по умолчанию? Я не вижу такого на странице руководства / файле справки.
Эта или какая-то команда-оболочка, которая автоматически убьет openssl -s_client через X секунд.
Я бы предпочел не тестировать хост / порт на удобство использования, если это возможно.
Используйте команду тайм-аута из пакета GNU coreutils.
timeout <time> <command>
Или посмотрите на первый ответ на это заархивированное сообщение в блоге для ответа только на bash.
для первого цикла: пока читаем servername; делаем
timeout 2 bash -c "/ dev / tcp / $ servername / $ Port" && echo Порт открыт. || echo Порт закрыт.
сделано
Но с открытыми портами сложнее: тайм-аут 1 openssl s_client -showcerts -connect $ servername: $ Port