Opensslのs_clientコマンドを使用して、多数のホストの証明書を取得するスクリプトがあります。これらのホストのいくつかは、ファイアウォールのために必然的に到達不能になります。 s_clientタイムアウトをデフォルトよりはるかに短い値に設定することは可能ですか?マニュアルページ/ヘルプファイルにはありません。
その秒数、またはX秒後にopenssl -s_clientを自動終了するラッパーコマンド。
可能であれば、ホスト/ポートの使いやすさを事前にテストしないことをお勧めします。
GNU coreutilsパッケージからのタイムアウトコマンドを使用します。
timeout <time> <command>
または、 このアーカイブされたブログ投稿 への最初の応答でbashのみの回答を確認してください。
最初のループの場合:servernameを読み取りながら;
タイムアウト2 bash -c "/ dev/tcp/$ servername/$ Port" && echoポートが開いています。 ||エコーポートが閉じています。
終わった
しかし、開いているポートはより困難です:タイムアウト1 openssl s_client -showcerts -connect $ servername:$ Port