首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >CentOS 7中"nc -z“的替代方案

CentOS 7中"nc -z“的替代方案
EN

Stack Overflow用户
提问于 2016-04-16 19:45:29
回答 2查看 6.7K关注 0票数 1

我有一个bash程序,它检查给定端口中的守护进程是否正在工作:

代码语言:javascript
复制
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开关不起作用了:

代码语言:javascript
复制
$ nc -z localhost 8080
nc: invalid option -- 'z'

看看CentOS 7中的man nc页面,我看不到任何可以替代-z的明确选择。我应该如何修复我的bash程序以使其在CentOS 7中工作,有什么建议吗?

EN

回答 2

Stack Overflow用户

发布于 2016-06-21 03:35:15

还有一个你真正想要的精简版本:

代码语言:javascript
复制
#!/bin/bash
# Start command: nohup ./check_server.sh 2>&1 &

check_server(){ # Start shell function

checkHTTPcode=$(curl -sLf -m 2 -w "%{http_code}\n" "http://10.10.10.10:8080/" -o /dev/null)

if [ $checkHTTPcode -ne 200 ]
    then
        # Check failed. Do something here and take any corrective measure here if nedded like restarting server
        # /sbin/service httpd restart >> /var/log/check_server.log
        echo "$(date) Check Failed " >> /var/log/check_server.log

    else
        # Everything's OK. Lets move on.
        echo "$(date) Check OK " >> /var/log/check_server.log
fi
}

while true # infinite check
do
# Call function every 30 seconds
check_server
sleep 30

done
票数 2
EN

Stack Overflow用户

发布于 2018-04-01 09:15:50

根据this post的说法,我使用:

代码语言:javascript
复制
nc -w1 localhost $port < /dev/null

(这也适用于debian,但比nc -z慢)

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36663738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档