nc から stderr を設定するにはどうすればいいですか?

nc から stderr を設定するにはどうすればいいですか?

ncポート接続を確認し、その結果をテキスト ファイルに転送したいと思います。

stdout正常に動作します。stderr使用しない場合は空です-v(これは望ましくありません)。そのため、エラー出力を次のように設定したいと思います。Servername: no connection

ncバージョンはv1.10-41+b1です。

コマンドは次のとおりです

nc -z -G 5 $Servername $Portname >> telnet_log.txt 2>&1

答え1

ncmacOS では、ホストへの接続に失敗した場合、ゼロ以外の終了ステータスで終了します。この事実を - ステートメントで使用して、if独自のエラー メッセージを出力できます。

if ! nc -z -G 5 "$server" "$port"; then
    printf '%s: no connection (port=%s)\n' "$server" "$port" >&2
fi >>nc-results.log 2>&1

ncこれにより、接続に成功した場合は標準出力に生成されたデータがすべてファイルに追加されますnc-report.logが、接続されなかった場合は独自のカスタム エラーが追加されます。

関連情報