免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 992 | 回复: 0
打印 上一主题 下一主题

linux查看网口流量的脚本 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2009-12-15 17:53 |只看该作者 |倒序浏览

通过本脚本,发现bash确实在算术运算方面比老的shell要强大,为此需要开始学习bash,以利用它强大的功能。不过bash中的for语句功能和c中差异比较大。
# cat stream
#! /bin/bash
# Write by Neil.xu  qq:37391319 email: xurongzhong@gmail.com
# 2008-8-19 we need to monitor streams of LTS channels, so write this script
typeset in in_old dif_in dif_in1 dif_out1
typeset out out_old dif_out
in_old=$(cat /proc/net/dev | grep eth0 | sed  's=^.*:==' | awk '{ print $1 }' )
out_old=$(cat /proc/net/dev | grep eth0 | sed  's=^.*:=='  | awk '{ print $9 }')
while true
do
         sleep 1
         in=$(cat /proc/net/dev | grep eth0 | sed  's=^.*:=='  | awk '{ print $1 }')
         out=$(cat /proc/net/dev | grep eth0 | sed  's=^.*:=='  | awk '{ print $9 }')
         dif_in=$((in-in_old))
         dif_in1=$((dif_in * 8 / 1024 / 1024 ))
         dif_out=$((out-out_old))
         echo "                                         IN: ${dif_in} bytes     OUT: ${dif_out} bytes "
         dif_out1=$((dif_out * 8 / 1024 / 1024 ))
         echo "IN: ${dif_in1} mbps    OUT: ${dif_out1} mbps"
         in_old=${in}
         out_old=${out}
done
运行效果:
# ./stream
                                                IN: 349179 bytes     OUT: 1363936 bytes
IN: 2 mbps    OUT: 10 mbps
                                                IN: 349612 bytes     OUT: 1361852 bytes
IN: 2 mbps    OUT: 10 mbps
                                                IN: 348684 bytes     OUT: 1358952 bytes
IN: 2 mbps    OUT: 10 mbps
                                                IN: 349998 bytes     OUT: 1359092 bytes

本文来自ChinaUnix博客,如果查看原文请点:http://blog.chinaunix.net/u1/56685/showart_2122202.html
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP