У меня есть программа Баш, которая проверяет, что демон в данном порту работает:Альтернатива в CentOS 7 для «н.д. -z»
nc -z localhost $port > /dev/null
if [ "$?" != "0" ]
then
echo The server on port $port is not working
exit
fi
Эта программа прекрасно работает в CentOS 6. Однако, кажется, что CentOS 7 изменила, лежащий в основе реализации для nc
команды (CentOS 6, кажется, использует Netcat и CentOS 7 использует другую вещь под названием Ncat) и теперь переключатель -z
не работает:
$ nc -z localhost 8080
nc: invalid option -- 'z'
Глядя на man nc
страницу в CentOS 7 Я не вижу ничего ясного от -z
. Любое предложение о том, как я должен исправить мою программу bash, чтобы она работала в CentOS 7?
Что касается близкого флаг, который был поднят, позвольте мне уточнить, что вопрос * есть * о программировании (в частности, программирования bash). – fgalan
Если вам не нужен инструмент, который вы используете, вы, вероятно, можете использовать ответы на http://stackoverflow.com/questions/4922943/test-from-shell-script-if-remote-tcp-port-is -open –
'if [" $? " ! = "0"] 'является антипаттерном; вам нужно просто 'if nc -z localhost $ port>/dev/null' – tripleee