私はIPアドレスとポートのリストを含むファイルを解析し、netcatを使用してポートに対して一連のテストを実行するスクリプトを書いています。 portパラメーターは、単一のポート、ポートリスト、またはポート範囲(netcat機能別)にすることができます。
netcatの引数がリストまたはポートの範囲の場合、stderrはポートごとに1行を取得します(netcatはすべてをstderrに送信します)。だから私の考えは、結果を変数に保存し、ループ(ラインごと)に解析して各ポートのテストステータス(成功、拒否、タイムアウト)を取得することです。
結果を保存するには、stderrをstdoutにリダイレクトして変数に保存します。
test=$(netcat -w 1 -zv 10.141.32.117 443-445 2>&1)
しかし、これは改行文字を削除します。
echo $test
netcat: connect to 10.141.32.117 port 443 (tcp) failed: Connection timed out netcat: connect to 10.141.32.117 port 444 (tcp) failed: Connection timed out netcat: connect to 10.141.32.117 port 445 (tcp) failed: Connection timed out
stderrをファイルにリダイレクトすると、結果に次の行が含まれます。 stderrをstdoutにリダイレクトすると、行末は削除されますか?
現在ファイルにリダイレクトしています。
説明していただきありがとうございます。