详情

首页手游攻略 netstat和awk结合统计详细网络状态

netstat和awk结合统计详细网络状态

佚名 2026-08-04 07:58:01

netstat -n | awk '/^tcp/ { state[$NF]} END {for(key in state) print key,"",state[key]}'

会得到类似下面的结果,具体数字会有所不同:

LAST_ACK 1SYN_RECV 14ESTABLISHED79FIN_WAIT128FIN_WAIT23CLOSING5TIME_WAIT1669

也就是说,这条命令可以把当前系统的网络连接状态分类汇总。

下面解释一下为啥要这样写:

一个简单的管道符连接了netstat和awk命令。

先来看看netstat:

netstat -nActive Internet connections (w/o servers)Proto Recv-Q Send-Q Local Address Foreign Address Statetcp00 123.123.123.123:80234.234.234.234:12345 TIME_WAIT

你实际执行这条命令的时候,可能会得到成千上万条类似上面的记录,不过我们就拿其中的一条就足够了。

再来看看awk:

/^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(key in state)

遍历数组

print key,"",state[key]

打印数组的键和值,中间用t制表符分割,美化一下。

相关资讯
点击查看更多
游戏推荐
推荐专题
热门阅读
推荐下载