2 tc song tc_song 于 2016.03.30 11:13 提问

linux中netstat某个瞬间值不准确,求大神指点

使用netstat监控端口时,连续两次查看的端口状态不一致,实际上这个端口应该是一直连接这的。
下面是我的bash监控脚本:

for((i=0; i do
netstat -an|grep $locPort >$TMPFILE
count=cat $TMPFILE|grep ESTABLISHED|awk '{print $4}'|grep $locPort|wc -l
count1=cat $TMPFILE|grep LISTEN| awk '{print $4}'|grep $locPort|wc -l
count2=cat $TMPFILE|awk '{print $4}'|grep $locPort|wc -l
local msgBuf1=0
local msgBuf2=0
msgBuf1=cat $TMPFILE|awk '{print $2,$3,$4,$6}' |grep $locPort|grep ESTABLISHED|awk '{print $1}'
msgBuf2=cat $TMPFILE|awk '{print $2,$3,$4,$6}' |grep $locPort|grep ESTABLISHED|awk '{print $2}'
msgBuf1=${msgBuf1:-0}
msgBuf2=${msgBuf2:-0}
if [ $count -eq 1 -a $count1 -eq 1 -a $count2 -eq 2 -a $msgBuf1 -eq 0 -a $msgBuf2 -eq 0 ] ;then
status="OK"
break
else
status="ERROR"
cat $TMPFILE >&3
echo "++++++++++++++++++++" >&3
netstat -an|grep $locPort >&3
echo "sleep 1s"
sleep 1s
continue
fi
done

下面是输出内容:

tcp 0 0 10.5.177.44:20203 0.0.0.0:* LISTEN
tcp 0 0 ::ffff:10.5.177.44:12184 ::ffff:10.5.177.44:20203 ESTABLISHED
++++++++++++++++++++
tcp 0 0 10.5.177.44:20203 0.0.0.0:* LISTEN
tcp 0 0 10.5.177.44:20203 10.5.177.44:12184 ESTABLISHED
tcp 0 0 ::ffff:10.5.177.44:12184 ::ffff:10.5.177.44:20203 ESTABLISHED

该监控程序大部分时候都是正常的,但是偶然性会出现上面这种情况,sleep1秒后端口状态又正常了,应用程序是长连接,这期间应用也是正常的。求大神指点。

Csdn user default icon
上传中...
上传图片
插入图片
准确详细的回答,更有利于被提问者采纳,从而获得C币。复制、灌水、广告等回答会被删除,是时候展现真正的技术了!