分享web开发知识

注册/登录|最近发布|今日推荐

主页 IT知识网页技术软件开发前端开发代码编程运营维护技术分享教程案例
当前位置:首页 > IT知识

netstat和awk结合统计TCP状态

发布时间:2023-09-06 01:08责任编辑:胡小海关键词:暂无标签

netstat和awk结合统计TCP状态


系统管理员想了解网络连接的状态时候,经常会使用netstat命令去统计服务器目前的网络连接状态,下面使用netstat和awk结合的一条命令可以很好的统计当前的网络状态。


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


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

TIME_WAIT        441

CLOSE_WAIT       66

ESTABLISHED      521


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


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


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


-----------------------------------------


先来看看netstat:


netstat -n


Active Internet connections (w/o servers)

Proto Recv-Q Send-Q Local Address               Foreign Address             State      

tcp        0      0 172.16.1.38:7192            172.16.1.38:8233            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制表符分割,美化一下。


本文出自 “学习之旅” 博客,请务必保留此出处http://blogtank.blog.51cto.com/10511324/1962580

netstat和awk结合统计TCP状态

原文地址:http://blogtank.blog.51cto.com/10511324/1962580

知识推荐

我的编程学习网——分享web前端后端开发技术知识。 垃圾信息处理邮箱 tousu563@163.com 网站地图
icp备案号 闽ICP备2023006418号-8 不良信息举报平台 互联网安全管理备案 Copyright 2023 www.wodecom.cn All Rights Reserved