проверка нескольких портов с помощью netcat nc

проверка нескольких портов с помощью netcat nc

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

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

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

решение1

Вам необходимо выполнить команду 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успешного выполнения всех команд статус выхода подоболочки становится истинным, это отменяется оператором , !и whileцикл завершается.

Связанный контент