Как я могу быстро узнать, открыт ли / прослушивается порт 80 на сервере через скрипт bash?
Обычно на всех рабочих станциях демон работает, но иногда он не работает. Я использую следующую команду, чтобы проверить, есть ли у IP-адреса открытый порт. Я хотел бы иметь возможность сделать это для каждой строки в файле без необходимости каждый раз вводить его вручную.
nc -zw3 10.101.0.13 80 && echo "opened" || echo "closed"
Файл списка выглядит следующим образом, где 3333
и 3334
- строки после $ip;
10.101.0.13; 3333
10.101.0.15; 3334
10.101.0.17; 4143
10.101.0.21; 1445
10.101.0.27; 2443
10.101.0.31; 2445
10.101.0.47; 3443
10.101.0.61; 3445
Я должен отделить открытые порты от закрытых, поэтому у меня будет список неисправных серверов, которые необходимо исправить.
Я попробовал что-то подобное без успеха:
while IFS=";" read ip port ; do nc -zw3 "$ip" "$port" && echo "$ip:$port => opened" || echo "$ip:$port => closed" ; done < list.txt
while IFS=";" read ip port ; do nc -zw3 "${ip}" "${port}" && echo "${ip}:${port} => opened" || echo "${ip}:${port} => closed" ; done < list.txt