Проблема с таймаутом netcat
почему следующая команда netcat не тайм-аут, если попытка подключения занимает больше 3 секунд (т. е. когда порт не открыт)? Я предположил, что флаг-w будет тем, что мне нужно. OS-это OSX 10.9.
nc -v -z -w 3 127.0.0.1 5050
предполагая, что это сработало, я планировал реализовать так (не уверен, что это сработает, total bash noob)
nc -v -z -w 3 127.0.0.1 5050 | /dev/null && echo "Online" || echo "Offline"
2 ответов
вам нужно перенаправить на /dev / null, а не на него. Попробуйте следующее:
nc -v -z -w 3 127.0.0.1 5050 &> /dev/null && echo "Online" || echo "Offline"
на моей машине, порт 5050 не работает, и я получаю следующее:
$ nc -v -z -w 3 localhost 5050 &> /dev/null && echo "Online" || echo "Offline"
Offline
есть старый отчет об ошибке об этом в debian (https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=97583) и все еще с тем же поведением в Debian GNU/Linux 7.7 (wheezy)
Я нашел "решение" для этого: установка версии openbsd nc:
apt-get install netcat-openbsd