您的位置:首页 > 理论基础 > 计算机网络

结合netstat和awk命令来统计网络连接数

2013-05-10 13:35 337 查看
netstat -an | awk '/^tcp/ {++state[$NF]} END {for(i in state) print i,"\t",state[i]}'
会得到类似下面的结果:
TIME_WAIT        12
FIN_WAIT1        3
ESTABLISHED      16
LISTEN   4
也就是这条命令可以把当前系统的网络连接状态分类汇总,解释一下:
/^tcp/
滤出tcp开头的记录,屏蔽udp, socket等无关记录

state[]

相当于定义了一个名叫state的数组

NF
表示记录的字段数,如上所示的记录,NF等于6

$NF
表示某个字段的值,如上所示的记录,$NF也就是$6,表示第6个字段的值,也就是TIME_WAIT

state[$NF]
表示数组元素的值,如上所示的记录,就是state[TIME_WAIT]状态的连接数

++state[$NF]
表示把某个数加一,如上所示的记录,就是把state[TIME_WAIT]状态的连接数加一

END
表示在最后阶段要执行的命令

for(i in state)
遍历数组

print i,"\t",state[i]
打印数组的键和值,中间用\t制表符分割
本文出自 “老徐的私房菜” 博客,谢绝转载!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: