庖丁解牛获取连接状态数的awk数组命令
全部系列分为五篇文章,本博文为第二篇:
三、庖丁解牛获取连接状态数的命令
3.1 获取连接状态数的awk命令
netstat -n |awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
提示:将netstat -n的结果通过管道符交给awk命令处理。
3.2先来执行下netstat -n
[oldboy@LVS-1-1 ~]$ netstat -n|more #截取部分有代表性的内容如下
Active Internet connections (w/o servers)
Proto Recv-Q Send-Q Local AddressForeign AddressState
tcp00 124.123.3.79:80219.85.194.23:12004SYN_RECV
tcp00 124.123.3.77:80183.8.74.57:3276SYN_RECV
tcp00 124.123.3.77:80124.236.0.214:63191SYN_RECV
tcp00 124.123.3.77:80221.237.233.41:2338TIME_WAIT
tcp01023 124.123.3.77:8061.178.184.222:62683FIN_WAIT1
tcp00 124.123.3.77:80222.79.242.74:7416TIME_WAIT
tcp04839 124.123.3.77:80121.31.42.148:30638FIN_WAIT1
tcp00 124.123.3.77:80183.10.154.60:37282TIME_WAIT
tcp01 124.123.3.77:8059.49.174.176:26913CLOSING
tcp00 124.123.3.77:80120.87.129.35:1787TIME_WAIT
tcp0174 124.123.3.77:80120.71.134.66:1165CLOSING
提示:实际执行这条命令的时候,可能会得到上万条类似的记录,我们只取若干来举例。
3.3拆解awk命令
1)完整命令如下
netstat -n |awk '/^tcp/ {++S[$NF]} END {for(a in S) print a, S[a]}'
2)awk庖丁解牛
命令拆分 |
功能说明 |
/^tcp/ |
过滤出以tcp开头的行,“^”为正则表达式用法,以...开头,这里是过滤出以tcp开头的行。 |
S[] |
定义了一个名叫S的数组,在awk中,数组下标通常从 1 开始,而不是 0。 |
NF |
当前记录里域个数,默认以空格分隔,如上所示的记录,NF域个数等于6 |
$NF |
表示一行的最后一个域的值,如上所示的记录,$NF也就是$6,表示第6个字段的值,也就是SYN_RECV或TIME_WAIT等。 |
S[$NF] |
表示数组元素的值,如上所示的记录,就是S[TIME_WAIT]状态的连接数 |
++S[$NF] |
表示把某个数加一,如上所示的记录,就是把S[TIME_WAIT]状态的连接数加一 |
END |
|
for(key in S) |
遍历S[]数组 |
print key,”\t”,S[key] |
打印数组的键和值,中间用\t制表符分割,显示好一些。 |
3)举个小例子练手
已知test.txt内容:
001 name wodi12k
002 name yingsui 15k
003 name jeacen10k
004 name kuqi8k
005 name yideng10k
006 name xiaofan8k
要求:统计老男孩培训学生中,不同薪水的学生的数量报表。
[oldboy@test ~]$ cat test.txt |awk '/^00/ {++S[$NF]} END {for (a in S) print a,S[a]}'
15k 1
8k 2
10k 2
12k 1
提示:模拟前面的awk命令,过滤以00开头的行,然后进行处理。
上述awk数组元素内容:
key=12k S[12K]=1
key=15k S[15K]=1
key=10k S[10K]=2
key=8kS[8K]=2
[oldboy@test ~]$ awk '/^00/ {++S[$NF]} END {for (a in S) print a,S[a]}' test.txt
15k 1
8k 2
10k 2
12k 1
提示:awk可以直接处理文本,因此,不需要去cat,不但不专业,而且内容多时,影响处理效率。
本文未完待续。更多博文内容:
本系列博文完整内容共5篇:
第一篇:详解linux netstat输出的网络连接状态信息
http://aqiang.blog.51cto.com/6086626/1891882
第二篇:庖丁解牛获取连接状态数的awk数组命令
http://aqiang.blog.51cto.com/6086626/1891883
第三篇:awk数组命令经典生产实战应用拓展
http://aqiang.blog.51cto.com/6086626/1891884
第四篇:老男孩培训第八节课前awk考试题案例(门户面试题解答)
http://aqiang.blog.51cto.com/6086626/1891886
第五篇:linux生产服务器有关网络状态的优化措施(告一段落)
http://aqiang.blog.51cto.com/6086626/1891887
转载于:https://blog.51cto.com/aqiang/1891883
庖丁解牛获取连接状态数的awk数组命令相关推荐
- awk数组命令经典生产实战应用拓展
全部系列分为五篇文章,本博文为第三篇:四.awk数组命令生产实战拓展4.1统计apache日志单ip访问请求数排名(这个常用,考试也常考) 假设apache日志内容access.log内容为: 10. ...
- awk数组详解、实战
1.其它编程语言数组的下标一般从0开始,awk中数组下标默认从1开始,也可以从0开始设置: awk 'BEGIN{huluwa[0]="大娃";huluwa[1]="二娃 ...
- awk数组处理两个文件的例子
awk数组处理两个文件的例子 如果文件a中包含文件b,则将文件b的记录打印出来输出到c文件里 文件a: 10/05766798607,11/20050325191329,29/0.1,14/057 ...
- awk 数组用法【精华贴】
文本处理的工作中,awk的数组是必不可少的工具,在这里,同样以总结经验和教训的方式和大家分享下我的一些学习心得,如有错误的地方,请大家指正和补充. awk的数组,一种关联数组(Associative ...
- Druid连接池源代码分析之二-获取连接
整体思路: 1:druid首先是连接池,DruidConnectionHolder[] 是通过对象数组来实现连接池的池子的,然后动态的维护下表,所以就要求并发性需要比较高,不然很容导致下表不准的现象. ...
- Linux shell awk数组使用
awk中使用数组 一.数组格式 数组是一个包含一系列元素的表. 格式如下: abc[1]="xiaohong" abc[2]="xiaolan" ...
- linux awk 数组的学习心得
在文本处理的工作中,awk的数组是必不可少的工具,在这里,同样以总结经验和教训的方式和大家分享下我的一些学习心得,如有错误的地方,请大家指正和补充. awk的数组,一种关联数组(Associative ...
- linux awk 数组,shell数组和awk数组
awk终于能入门了,所以整理了该文章,内容大多来自网上. 一.bash支持一维数组(不支持多维数组),没有限定数组的大小.在shell中,用括号来表示数组,数组元素用空格符号分割开.类似于C语言,数组 ...
- Druid获取连接超时,导致服务不可用
前言 一个微服务模块在运行一段时间之后,整体服务就不可用了,但是服务却没有打印任何错误日志.而对服务进行重启之后,服务就可以暂时提供一段时间服务,过一段时间之后再次不可用. 分析 服务进行重启就可以正 ...
最新文章
- java获取注解的属性值_反射+自定义注解,实现获取注解标记的属性
- java形参的传递机制
- 苹果如何不显示云服务器照片,苹果云端照片怎么恢复到相册-互盾苹果恢复精灵...
- buildroot output子目录
- 模板方法模式coding
- java之网站发送手机短信实现
- BZOJ 2458 最小三角形(分治)
- python主线程和子线程_python 在threading中如何处理主进程和子线程的关系
- Tomcat软连接访问配置(symbol link)
- 微信小程序底部导航栏实现
- java开发mdm平台_Apple iOS MDM开发流程
- 8.如何在idea打开一个已有项目
- setTimeout运行机制
- Docker报错:E: Unable to locate package python3
- 关于video标签,禁止点击播放时自动全屏,和video出现诡异窗口重叠
- 基因芯片与NGS区别[转载]
- 三极管的经典之作,你知道吗?
- 计算两个日期之间的天数,你知道哪些函数能够计算呢?
- 英语练习 day5 不带动词的句子
- python在哪里写代码-python代码在哪里编写
热门文章
- Prometheus+Grafana可视化监控SpringBoot项目
- InnoDB undo tablespace使用及原理
- 中国光谷大数据产业联盟成立 打造大数据产业生态圈
- Jekyll本地搭建开发环境以及Github部署流程
- 【LeetCode题解】二叉树的遍历
- 【AIX 命令学习】errpt 显示系统错误报告!
- xmlhttp的状态码收集
- 山东CIO智库会员参观徐工信息公司
- Caused by: java.net.UnknownHostException: localhost.localdomain: localhost.localdomain的问题解决...
- docker安装(2018-03-14版本)