Überprüfen Sie mehrere Ports mit Netcat NC

Überprüfen Sie mehrere Ports mit Netcat NC

Ich verwende Folgendes, um zu warten, bis ein Port geöffnet wird.

while ! nc -z 127.0.0.1 8080; do sleep 0.1; done

wie kann das oben genannte geändert werden, um mehrere Ports zu prüfen. Das Skript sollte also nur anhalten, wenn alle Ports belegt sind, z. B. 8080, 8081 und 8082.

Antwort1

Sie müssen ncfür jeden Port separat ausführen:

while ! (nc -z 127.0.0.1 8080 && nc -z 127.0.0.1 8081 && nc -z 127.0.0.1 8082)
    do sleep 0.1
done

(zur besseren Lesbarkeit auf mehrere Zeilen aufgeteilt)

Dabei wird eine Shell-Subshell mit einer Liste von Befehlen mit einem logischen „und“ &&-Operator verwendet; der zweite ncBefehl wird nur ausgeführt, wenn der erste erfolgreich war usw.; sobald alle ncBefehle erfolgreich sind, ist der Beendigungsstatus der Subshell wahr, dies wird negiert !und die whileSchleife wird beendet.

verwandte Informationen