首页
看点啥
插画图片
首页 看点啥 netstat和awk结合统计详细网络状态

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

2026-08-04 0

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

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

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

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制表符分割,美化一下。

喜欢(0)

上一篇

Microsoft Fabric 在阿里云上对标什么?AnalyticDB MySQL 湖仓一体统一分析方案

Microsoft Fabric 在阿里云上对标什么?AnalyticDB MySQL 湖仓一体统一分析方案

下一篇

AWS EMR 上的 Spark 作业迁到阿里云用什么?AnalyticDB MySQL 湖仓版 Serverless Spark 免运维替代方案

AWS EMR 上的 Spark 作业迁到阿里云用什么?AnalyticDB MySQL 湖仓版 Serverless Spark 免运维替代方案
猜你喜欢