Überprüfen Sie mehrere Ports mit netcat nc

646
Abhishek Thakur

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

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

Wie kann das Obige geändert werden, um mehrere Ports zu überprüfen. Das Skript sollte also nur angehalten werden, wenn alle Ports belegt sind, z. B. 8080, 8081 und 8082.

0

1 Antwort auf die Frage

0
wurtel

Sie müssen ncfür jeden Port separat laufen :

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)

Dies verwendet eine Shell-Subshell mit einer Liste von Befehlen mit einem logischen "und" - &&Operator. Der zweite ncBefehl wird nur ausgeführt, wenn der erste Befehl erfolgreich war, usw .; ncWenn alle Befehle erfolgreich sind, ist der Exit-Status der Subshell wahr, dies wird von der negiert !und die whileSchleife wird beendet.