netstat与awk命令统计网络连接数的方法
时间:2014-09-30 20:30 来源:linux.it.net.cn 作者:it
使用netstat与awk命令,统计网络连接数,代码示例:
复制代码代码示例:
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制表符分割
把整个命令行拆解开来,是不是好理解多了,对于新手朋友而言,把linux命令与shell脚本基础弄扎实了,对以后的脚本编程或系统运维都是有好处的。
(责任编辑:IT)
使用netstat与awk命令,统计网络连接数,代码示例:
复制代码代码示例:
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 这条命令可以把当前系统的网络连接状态分类汇总。
以下是对命令中各参数的解释,以帮助大家理解:
state[]
NF
$NF
state[$NF]
++state[$NF]
END
for(i in state)
print i,"\t",state[i] 把整个命令行拆解开来,是不是好理解多了,对于新手朋友而言,把linux命令与shell脚本基础弄扎实了,对以后的脚本编程或系统运维都是有好处的。 |