展会信息港展会大全

CentOS下netstat + awk 查看tcp的网络连接状态
来源:互联网   发布日期:2015-08-19 22:06:50   浏览:3081次  

导读: 执行以下命令: #netstat -n | awk /^tcp/ {++state[$NF]} END {for(key in state) print key.\t.state[key]} 会得到类似下面的结果,具体数字会有所不同: FIN_WAIT_1 286 FIN_WAIT_2 960 SYN_SENT 3 LAST_ACK 32 CLOSING 1 CLOSED 36 SYN_RCVD 144 TIME_WA...

执行以下命令:

#netstat -n | awk /^tcp/ {++state[$$NF]} END {for(key in state) print key."\t".state[key]}

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

FIN_WAIT_1 286

FIN_WAIT_2 960

SYN_SENT 3

LAST_ACK 32

CLOSING 1

CLOSED 36

SYN_RCVD 144

TIME_WAIT 2520

ESTABLISHED 352 #差不多等于连接的并发数

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

这条语句是在张宴那边看到,据说是从新浪互动社区事业部技术总监王老大那儿获得的,非常不错。

返回参数的说明如下:

SYN_RECV表示正在等待处理的请求数;

ESTABLISHED表示正常数据传输状态;

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,"\t",state[key]

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

赞助本站

人工智能实验室

相关热词: CentOS netstat awk tcp

AiLab云推荐
展开

热门栏目HotCates

Copyright © 2010-2024 AiLab Team. 人工智能实验室 版权所有    关于我们 | 联系我们 | 广告服务 | 公司动态 | 免责声明 | 隐私条款 | 工作机会 | 展会港