位置: 编程技术 - 正文
推荐整理分享shell awk实现实时监控网卡流量脚本(常见应用二) (shell中awk命令),希望有所帮助,仅作参考,欢迎阅读内容。
文章相关热门搜索词:shell awk命令,shell awk命令,shell awk命令详解,shell awk命令,awk调用shell函数,shell中awk命令脚本实例,shell中awk命令脚本实例,shell中的awk工具执行原理,内容如对您有帮助,希望把文章链接给更多的朋友!
实现原理: [chengmo@localhost ~]$ cat /proc/net/devInter-| Receive | Transmitface |bytes packets errs drop fifo frame compressed multicast|bytes packets errs drop fifo colls carrier compressed lo: 0 0 0 0 0 0 0 0 0 0 0 0 eth0: 0 0 0 0 0 0 0 0 0 0 0
proc/net/dev 文件保存了网卡总流量信息,通过间隔一段间隔,将入网卡与出记录加起来。减去之前就得到实际速率。
程序代码:
复制代码代码如下:awk 'BEGIN{OFMT="%.3f";devf="/proc/net/dev";while(("cat "devf) | getline){ if($0 ~ /:/ && ($+0) > 0) { split($1,tarr,":"); net[tarr[1]]=$+tarr[2]; print tarr[1],$+tarr[2]; }}close(devf);while((system("sleep 1 ")) >=0){ system("clear"); while( getline < devf ) { if($0 ~ /:/ && ($+0) > 0) { split($1,tarr,":"); if(tarr[1] in net) { print tarr[1],":",($+tarr[2]-net[tarr[1]])*8/,"kb/s"; net[tarr[1]]=$+tarr[2]; } } } close(devf);}}' 说明:第一个while 是获得总的初始值,$1是网卡出流量,$是网卡进流量。第2个while会间隔1秒钟启动一次。计算总流量差得到平均每秒流量。 注意:通过getline 逐行读取文件,需要close关闭 。否则在第2次while循环中不能获得数据。 运行结果:
awk 分析web日志(页面执行时间)(常见应用3) 前一段时间,我写过一篇文章,shell脚本分析nginx日志访问次数最多及最耗时的页面(慢查询),其中提到了分析耗时页面重要性。今天主要讲的,是通过
awk 多行合并(next 使用介绍) (常见应用4) awknext语句使用:在循环逐行匹配,如果遇到next,就会跳过当前行,直接忽略下面语句。而进行下一行匹配。复制代码代码如下:text.txt内容是:abcde[chengmo@
linux awk 数组排序多种实现方法 复制代码代码如下:[chengmo@localhost~]$awk'BEGIN{info="thisisatest";split(info,tA,"");for(kintA){printk,tA[k];}}'4test1this2is3a如果需要按照顺序输出,通过键值定位方式输出
标签: shell中awk命令
本文链接地址:https://www.jiuchutong.com/biancheng/359053.html 转载请保留说明!友情链接: 武汉网站建设