проверить несколько портов с помощью Netcat NC

499
Abhishek Thakur

Я использую следующее, чтобы дождаться открытия порта.

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

как можно изменить выше, чтобы проверить несколько портов. Таким образом, скрипт должен останавливаться только тогда, когда все порты заняты, например, 8080, 8081 и 8082.

0

1 ответ на вопрос

0
wurtel

Вам нужно запустить ncотдельно для каждого порта:

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 

(разделить на несколько строк для удобства чтения)

При этом используется подоболочка оболочки со списком команд с логическим &&оператором «и» ; вторая ncкоманда выполняется только в том случае, если первая выполнена успешно и т. д .; как только все ncкоманды выполнены успешно, статус выхода подоболочки равен true, это отменяется !и whileцикл завершается.