当前访客身份:游客 [ 登录 | 加入 OSCHINA ]

代码分享

当前位置:
代码分享 » Shell/批处理  » 配置/脚本/批处理
bedo

实时查看linux网卡流量

bedo 发布于 2011年01月21日 15时, 20评/26018阅
分享到: 
收藏 +0
1
将下列脚本保存为可执行脚本文件,比如叫traff.sh。

1、本脚本可自定义欲查看接口,精确到小数,并可根据流量大小灵活显示单位。
2、此脚本的采集间隔为1秒。
3、此脚本不需要额外再安装软件,可在急用情况下应付一下,比如临时想看一下是否有流量通过,大概为多少等。
4、一些流量查看软件由于计算的精确度不同,所以与此脚本显示的数值不可能一致,此脚本的显示结果与du meter对比过,相差很小。还有就是传输工具本身显示的传输速度并不准确。
用法为:
1、chmod +x ./traff.sh 将文件改成可执行脚本。
2、./traff.sh eth0即可开始监看接口eth0流量,按ctrl+c退出。
标签: Linux 网卡 流量

代码片段(1) [全屏查看所有代码]

1. [代码][Shell/批处理]代码     跳至 [1] [全屏预览]

#!/bin/bash
while [ "1" ]
do
eth=$1
RXpre=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $2}')
TXpre=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $10}')
sleep 1
RXnext=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $2}')
TXnext=$(cat /proc/net/dev | grep $eth | tr : " " | awk '{print $10}')
clear
echo  -e  "\t RX `date +%k:%M:%S` TX"
RX=$((${RXnext}-${RXpre}))
TX=$((${TXnext}-${TXpre}))

if [[ $RX -lt 1024 ]];then
RX="${RX}B/s"
elif [[ $RX -gt 1048576 ]];then
RX=$(echo $RX | awk '{print $1/1048576 "MB/s"}')
else
RX=$(echo $RX | awk '{print $1/1024 "KB/s"}')
fi

if [[ $TX -lt 1024 ]];then
TX="${TX}B/s"
elif [[ $TX -gt 1048576 ]];then
TX=$(echo $TX | awk '{print $1/1048576 "MB/s"}')
else
TX=$(echo $TX | awk '{print $1/1024 "KB/s"}')
fi

echo -e "$eth \t $RX   $TX "
done


开源中国-程序员在线工具:Git代码托管 API文档大全(120+) JS在线编辑演示 二维码 更多»

发表评论 回到顶部 网友评论(20)

  • 1楼:bedo 发表于 2011-01-24 13:12 回复此评论
    这家伙好猛啊,直接采集走了,只改了脚本名
    http://www.linuxidc.com/Linux/2011-01/31516.htm
  • 2楼:ValueError 发表于 2011-01-26 05:16 回复此评论

    引用来自“bedo”的评论

    这家伙好猛啊,直接采集走了,只改了脚本名
    http://www.linuxidc.com/Linux/2011-01/31516.htm
    应该建立一个共享黑名单,然后正常运营的站长们集体封杀这些小偷。
  • 3楼:红薯 发表于 2011-01-27 14:42 回复此评论

    引用来自“TonySeek”的评论

    引用来自“bedo”的评论

    这家伙好猛啊,直接采集走了,只改了脚本名
    http://www.linuxidc.com/Linux/2011-01/31516.htm
    应该建立一个共享黑名单,然后正常运营的站长们集体封杀这些小偷。
    人家是手工采集的,你没法封
  • 4楼:bedo 发表于 2011-01-27 15:21 回复此评论
    这两天我发现采用watch的方式采集的数据精度有点问题,所以稍微改动了一下直接写成无限循环,加上了时间显示。精度相对提高。我会不断修改这个脚本。
  • 5楼:ztskycn 发表于 2011-01-27 17:00 回复此评论

    引用来自“bedo”的评论

    这两天我发现采用watch的方式采集的数据精度有点问题,所以稍微改动了一下直接写成无限循环,加上了时间显示。精度相对提高。我会不断修改这个脚本。
    兄弟,分享了不少有用的代码啊。谢谢!
  • 6楼:bedo 发表于 2011-01-27 22:44 回复此评论

    引用来自“ztskycn”的评论

    引用来自“bedo”的评论

    这两天我发现采用watch的方式采集的数据精度有点问题,所以稍微改动了一下直接写成无限循环,加上了时间显示。精度相对提高。我会不断修改这个脚本。
    兄弟,分享了不少有用的代码啊。谢谢!
    有用的东西直接拿来用多好啊,对我而言也有个存放代码的地方。^_^
  • 7楼:范堡 发表于 2011-01-28 11:57 回复此评论
    这货有用!!!!感谢兄弟分享!!
  • 8楼:bedo 发表于 2011-01-30 09:08 回复此评论
    再过两天就放假回家了,昨晚我把代码再改动了一下,这次达到流量数精确到小数,同时自动根据流量的大小显示适当的单位以便更好地查看结果(比如B/s、KB/s或MB/s。)
  • 9楼:Aaronzx 发表于 2011-09-29 15:54 回复此评论
    不错的代码!
  • 10楼:Aaronzx 发表于 2011-09-29 15:59 回复此评论

    请问 为什么我的提示

    12 行 syntax error: operand expected (error token is "-")

  • 11楼:Aaronzx 发表于 2011-09-29 16:11 回复此评论
    ok 我搞定了!谢谢分享
  • 12楼:wanghz 发表于 2012-04-27 17:54 回复此评论
    很不错的!
  • 13楼:well 发表于 2012-08-29 15:26 回复此评论
    好东西
  • 14楼:风逐蓝天 发表于 2013-12-06 13:39 回复此评论
     行 12: -: 语法错误: 期待操作数 (错误符号是 "-")

  • 15楼:风逐蓝天 发表于 2013-12-06 13:40 回复此评论

    引用来自“Aaron_zx”的评论

    ok 我搞定了!谢谢分享
    怎么搞定的呀
  • 16楼:拜仁慕尼黑 发表于 2013-12-10 09:51 回复此评论
    顶一下
  • 17楼:南京mrg 发表于 2013-12-11 10:35 回复此评论
    12 行 syntax error: operand expected (error token is "-") 
    redhat ,求指教。。
  • 18楼:__阿黄 发表于 2015-10-13 14:43 回复此评论

    引用来自“南京mrg”的评论

    12 行 syntax error: operand expected (error token is "-") 
    redhat ,求指教。。
    ./traff.sh eth0 后面加上变参
  • 19楼:__阿黄 发表于 2015-10-13 15:13 回复此评论
    tr :" "  这个命令去掉 也可以运行  为什么 小白求教?
  • 20楼:chijizhong 发表于 2017-01-20 16:06 回复此评论
    好用
开源从代码分享开始 分享代码
bedo的其它代码 全部(5)...