Czy można ustawić limit czasu dla polecenia s_client openssl?

14

Mam skrypt, który używa polecenia s_client openssl do pobierania certyfikatów dla dużego zestawu hostów. Niektóre z tych hostów nieuchronnie będą niedostępne z powodu zapory ogniowej. Czy można ustawić limit czasu s_client na coś znacznie krótszego niż domyślny? Nie widzę go w stronie man / pliku pomocy.

To lub jakieś polecenie otoki, które automatycznie zabije openssl -s_client po X liczbie sekund.

Wolę nie testować hosta / portu pod kątem użyteczności, jeśli to możliwe.

Justin Ainsworth
źródło

Odpowiedzi:

14

Użyj komendy timeout z pakietu GNU coreutils.

timeout <time> <command>

Możesz też spojrzeć na pierwszą odpowiedź na ten zarchiwizowany post na blogu, aby uzyskać odpowiedź tylko na bash.

kupson
źródło
1

dla pierwszej pętli: podczas odczytu nazwy serwera;

timeout 2 bash -c "/ dev / tcp / $ servername / $ Port" && echo Port otwarty. || echo Port zamknięty.

gotowy

Ale otwarte porty są trudniejsze: limit czasu 1 openssl s_client -showcerts -connect $ nazwa_serwera: $ Port

erik
źródło