learn shell check_tcpconn.sh from nagios

作者: 2hei 发表于2008年8月25日 21:31
版权声明: 可以转载, 转载时务必以超链形式标明文章原始出处和作者信息及版权声明
http://www.2hei.net/mt/2008/08/learn-shell-check-tcpconnsh-fr.html
#check_tcpconn.sh
# warning value
W=1500
# critical value
C=2190
if [ -f /proc/net/tcp6 ]
        then
                TCP_FILE6="/proc/net/tcp6"
fi
if [ -f /proc/net/tcp ]
        then
                TCP_FILE="/proc/net/tcp"
fi
cat $TCP_FILE6 $TCP_FILE > /tmp/tcpstat
awk -v TOTAL_W="$W" -v TOTAL_C="$C" 'BEGIN{ ESTABLISHED=TIME_WAIT=SYN_RECV=TOTAL=0}
                {if($4 ~/01/) {ESTABLISHED++ ; TOTAL++} else if($4 ~/06/) {TIME_WAIT++; TOTAL++} else if($4 ~/03/) {SYN_RECV++; TOTA
L++} else TOTAL++ }
                END{
                if (TOTAL < TOTAL_W)
                        {printf "OK CONN %s ESTABLISHED  %s TIME_WAIT  %s SYN_RECV  %s  TOTAL|CONN,%s,%s,%s,%s;",ESTABLISHED,TIME_WA
IT,SYN_RECV,TOTAL,ESTABLISHED,TIME_WAIT,SYN_RECV,TOTAL ; exit 0}
                else if (TOTAL < TOTAL_C)
                        {printf "WARNING CONN %s ESTABLISHED  %s TIME_WAIT  %s SYN_RECV  %s  TOTAL|CONN,%s,%s,%s,%s;",ESTABLISHED,TI
ME_WAIT,SYN_RECV,TOTAL,ESTABLISHED,TIME_WAIT,SYN_RECV,TOTAL ; exit 0}
                else
                        {printf "CRITICAL CONN %s ESTABLISHED  %s TIME_WAIT  %s SYN_RECV  %s  TOTAL|CONN,%s,%s,%s,%s;",ESTABLISHED,T
IME_WAIT,SYN_RECV,TOTAL,ESTABLISHED,TIME_WAIT,SYN_RECV,TOTAL ; exit 0}

                }' /tmp/tcpstat

this script check  /proc/net/tcp , u can find tcp connect status  .

cat /proc/net/tcp
enum {
  TCPF_ESTABLISHED = (1 << 1),
  TCPF_SYN_SENT  = (1 << 2),
  TCPF_SYN_RECV  = (1 << 3),
  TCPF_FIN_WAIT1 = (1 << 4),
  TCPF_FIN_WAIT2 = (1 << 5),
  TCPF_TIME_WAIT = (1 << 6),
  TCPF_CLOSE     = (1 << 7),
  TCPF_CLOSE_WAIT = (1 << 8),
  TCPF_LAST_ACK  = (1 << 9),
  TCPF_LISTEN    = (1 << 10),A
  TCPF_CLOSING   = (1 << 11),B
};
| | Comments (0) | TrackBacks (0)

发表一个评论

关于这篇文章

这篇文章由2hei2008年8月25日 21:31发布.

上一篇:ffmpeg 安装常见问题的解决

下一篇:mysql OLD_PASSWORD's problem

回到首页 或者查看归档文章