Chinaunix首页 | 论坛 | 博客
  • 博客访问: 916659
  • 博文数量: 75
  • 博客积分: 1216
  • 博客等级: 少尉
  • 技术积分: 1998
  • 用 户 组: 普通用户
  • 注册时间: 2012-08-11 16:20
个人简介

优秀是一种习惯

文章分类

全部博文(75)

文章存档

2014年(1)

2013年(29)

2012年(45)

分类: Python/Ruby

2012-11-13 18:01:23

事例文本如下
16:01:07  RX  and  TX eth0      2.62305KB/s      0B/s 
16:01:12  RX  and  TX eth0      1.81152KB/s      0B/s 
16:01:17  RX  and  TX eth0      3.33984KB/s      792B/s 
16:01:22  RX  and  TX eth0      3.94238KB/s      1.65625KB/s 
16:01:27  RX  and  TX eth0      3.29688KB/s      1.25977KB/s 
16:01:32  RX  and  TX eth0      3.28711KB/s      848B/s 
16:01:37  RX  and  TX eth0      3.75391KB/s      228B/s 
16:07:36  RX  and  TX eth0      149.52KB/s       3.74805KB/s 

统计出最大的RX和最大的TX,让后相加,流量统计的单位可能不一样,我这里只统计到B、KB、MB和GB,如果流量很到到TB(情况比较少吧...),可以再增加一条即可。脚本如下:
#!/usr/bin/awk -f

{
        $6=s($6)
        RX = RX > $6 ? RX : $6

        $7=s($7)
        TX = TX >$7 ? TX : $7
}
function s(tmp)
{
        if(tmp ~ /KB/){
                sub("KB/s","",tmp)
                tmp=tmp*1000 }
        else if(tmp ~ /MB/){
                sub("MB/s","",tmp)
                tmp=tmp*1000*1000}
        else if(tmp ~ /GB/){
                sub("GB/s","",tmp)
                tmp=tmp*1000*1000*1000}
        else
                sub("B/s","",tmp)
        return tmp
}
END{
        print RX + TX"B/s"
}

阅读(1876) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~