博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
netstat与awk统计网络状态
阅读量:5996 次
发布时间:2019-06-20

本文共 784 字,大约阅读时间需要 2 分钟。

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

netstat -n | awk '/^tcp/ {++state[$NF]} END {for(key in state) print key,"t",state[key]}'
会得到类似下面的结果,具体数字会有所不同:
LAST_ACK 1
*SYN_RECV 14
ESTABLISHED 79
FIN_WAIT1 28
FIN_WAIT2 3
CLOSING 5
TIME_WAIT 1669*

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

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

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

**

netstat:

查询网络状态的命令。

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


再来看看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://ichlx.baihongyu.com/

你可能感兴趣的文章
Java生成二维码
查看>>
JDBC 批量插入数据优化, 使用 addBatch 和 executeBatch
查看>>
PowerDesigner更改数据库类型
查看>>
2015年这6部科幻电影,你看了吗?
查看>>
导出excel(sqlserver)
查看>>
Gallery Server Pro ----用于分享相片,视频,音频及其他媒体的ASP.NET相册[Carol]
查看>>
Uvaoj 11248 Frequency Hopping(Dinic求最小割)
查看>>
网站统计代码
查看>>
安装centos 7的时候出现An Unknown Error Has Occurred
查看>>
Linux常用命令大全
查看>>
ceph存储 磁盘IOPS常识
查看>>
ORA-12720: operation requires database is in EXCLUSIVE mode
查看>>
ELK日志服务使用-kafka传输日志(bbotte.com)
查看>>
linux系统之iptables其二命令注解
查看>>
Silverlight C# 游戏开发:高深莫测却浅显易懂的游戏开发
查看>>
AI将如何改变广告业,这里有三个计算机视觉应用案例
查看>>
标准ACL+扩展ACL+命名ACL
查看>>
Apache2.4.1编译安装报错解决
查看>>
Linux常用的基本命令14
查看>>
《zabbix进程组成结构与zabbix_agentd.conf配置文件参数详解》-3
查看>>