Wie konfiguriere ich stderr von nc aus?

Wie konfiguriere ich stderr von nc aus?

Ich möchte die Portverbindungen prüfen ncund das Ergebnis in eine Textdatei weiterleiten.

stdoutfunktioniert einwandfrei. stderrist leer, wenn Sie es nicht verwenden -v(was ich nicht möchte), daher möchte ich die Fehlerausgabe wie folgt konfigurierenServername: no connection

ncist Version v1.10-41+b1.

Hier ist der Befehl

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

Antwort1

ncunter macOS wird mit einem Exit-Status ungleich Null beendet, wenn die Verbindung zu einem Host fehlschlägt. Sie können diese Tatsache in einer if-Anweisung verwenden, um eine eigene Fehlermeldung auszugeben:

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

ncDadurch werden bei erfolgreicher Verbindung alle in der Standardausgabe erzeugten Daten zur Datei hinzugefügt nc-report.log. Wenn die Verbindung jedoch nicht hergestellt werden konnte, wird Ihr eigener benutzerdefinierter Fehler hinzugefügt.

verwandte Informationen