主页 > 知识库 > shell awk实现实时监控网卡流量脚本(常见应用二)

shell awk实现实时监控网卡流量脚本(常见应用二)

热门标签:制作地图标注 新科火车站地图标注点 外呼系统怎么弄 桂林市ai电销机器人公司 地址高德地图标注 商店地图标注外卖入驻 外呼系统链接 地图标注的牌子 磁力导航地图标注

实现原理:
[chengmo@localhost ~]$ cat /proc/net/dev
Inter-|   Receive                                                |  Transmit
face |bytes    packets errs drop fifo frame compressed multicast|bytes    packets errs drop fifo colls carrier compressed
    lo:1068205690 1288942839    0    0    0     0          0         0 1068205690 1288942839    0    0    0     0       0          0
  eth0:91581844 334143895    0    0    0     0          0 145541676 4205113078 3435231517    0    0    0     0       0          0

proc/net/dev 文件保存了网卡总流量信息,通过间隔一段间隔,将入网卡与出记录加起来。减去之前就得到实际速率。

程序代码:


复制代码
代码如下:

awk 'BEGIN{
OFMT="%.3f";
devf="/proc/net/dev";
while(("cat "devf) | getline)
{
if($0 ~ /:/ ($10+0) > 0)
{
split($1,tarr,":");
net[tarr[1]]=$10+tarr[2];
print tarr[1],$10+tarr[2];
}
}
close(devf);
while((system("sleep 1 ")) >=0)
{
system("clear");
while( getline devf )
{
if($0 ~ /:/ ($10+0) > 0)
{
split($1,tarr,":");
if(tarr[1] in net)
{
print tarr[1],":",($10+tarr[2]-net[tarr[1]])*8/1024,"kb/s";
net[tarr[1]]=$10+tarr[2];
}
}
}
close(devf);
}
}'


说明:第一个while 是获得总的初始值,$1是网卡出流量,$10是网卡进流量。第2个while会间隔1秒钟启动一次。计算总流量差得到平均每秒流量。

注意:通过getline 逐行读取文件,需要close关闭 。否则在第2次while循环中不能获得数据。

运行结果:

标签:湘西 仙桃 衡阳 六盘水 茂名 衡阳 三门峡 庆阳

巨人网络通讯声明:本文标题《shell awk实现实时监控网卡流量脚本(常见应用二)》,本文关键词  shell,awk,实现,实时,监控,;如发现本文内容存在版权问题,烦请提供相关信息告之我们,我们将及时沟通与处理。本站内容系统采集于网络,涉及言论、版权与本站无关。
  • 相关文章
  • 下面列出与本文章《shell awk实现实时监控网卡流量脚本(常见应用二)》相关的同类信息!
  • 本页收集关于shell awk实现实时监控网卡流量脚本(常见应用二)的相关信息资讯供网民参考!
  • 推荐文章