Linux查看网络流量的脚本

来源:互联网 发布:淘宝买正品脱毒舒胶囊 编辑:程序博客网 时间:2024/05/22 13:44
 通过本脚本,发现bash确实在算术运算方面比老的shell要强大,不过bash中的for语句功能和c中差异比较大.程序是写给用户用的,而你不懂脚本,不会shell,perl,python,php,tcl中一个,OK,那你肯定是windows骨灰级加发烧友了.我不鄙视你,你自己羞愧去吧,放心你撞墙or跳楼我都不会拉的.OK,just for fan!!!



# 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
IN: 2 mbps OUT: 10 mbps

 

原文地址:http://www.yuanma.org/data/2008/1110/article_3305.htm

原创粉丝点击