Use o comando timeout do pacote GNU coreutils.
timeout <time> <command>
Se preferir, consulte a primeira resposta para arquivamento postagem no blog para uma resposta apenas bash.
Eu tenho um script que usa o comando s_client do openssl para obter certificados para um grande conjunto de hosts. Alguns desses hosts serão inevitavelmente inacessíveis por causa de um firewall. É possível definir o tempo limite s_client para algo muito mais curto que o padrão? Eu não vejo uma na página man / help.
Esse ou algum tipo de comando wrapper que mata automaticamente o openssl -s_client após o número X de segundos.
Prefiro não testar previamente um host / porta para usabilidade, se possível.
Use o comando timeout do pacote GNU coreutils.
timeout <time> <command>
Se preferir, consulte a primeira resposta para arquivamento postagem no blog para uma resposta apenas bash.
para o primeiro loop: while read servername; do
tempo limite 2 bash -c "/ dev / tcp / $ nomedoservidor / $ Porta" & & porta de eco aberta. || porta de eco fechada.
concluído
Mas os portos abertos são mais difíceis: tempo limite 1 openssl s_client -showcerts -connect $ servername: $ Port
Tags openssl unix shell-scripting