shell 实时查看流量和包的数量

废话不多说了 ,直接上 脚本  有什么问题 请留言,平台是 centos6.5 

#!/bin/sh
# centos6.5
# by tian qq:342388368
if [ "$1" = "" ];then
    echo -e "\n     use interface_name after the script,like \"script eth0\"...\n"
     exit -1
fi
echo -e "\n   start monitoring the $1,press \"ctrl+c\" to stop"
echo -----------------------------------------------------------
file=/proc/net/dev
while true
    do
    RX_bytes=`cat $file|grep $1|sed 's/^ *//g'|awk -F '[ :]+' '{print $2}'`   #sed 's/^ *//g'  去掉开头的空格,-F '[ :]+' 用空格或:作为分隔符,这地方可能翻译的不准确
    RX_pac=`cat $file|grep $1|sed 's/^ *//g'|awk -F '[ :]+' '{print $3}'`
    TX_bytes=`cat $file|grep $1|sed 's/^ *//g'|awk -F '[ :]+' '{print $10}'`
    TX_pac=`cat $file|grep $1|sed 's/^ *//g'|awk -F '[ :]+' '{print $11}'`
    sleep 3
    RX_bytes_later=`cat $file|grep $1|sed 's/^ *//g'|awk -F '[ :]+' '{print $2}'`
    RX_pac_later=`cat $file|grep $1|sed 's/^ *//g'|awk -F '[ :]+' '{print $3}'`
    TX_bytes_later=`cat $file|grep $1|sed 's/^ *//g'|awk -F '[ :]+' '{print $10}'`
    TX_pac_later=`cat $file|grep $1|sed 's/^ *//g'|awk -F '[ :]+' '{print $11}'`
    #B*8/1024/1024=Mb
    speed_RX=`echo "scale=2;($RX_bytes_later - $RX_bytes)*8/1024/1024/3"|bc`   #scale 是保留小数点几位,bc是浮点运算
    speed_RX_P=`echo "scale=2;($RX_pac_later - $RX_pac)/1000/3"|bc`
    speed_TX=`echo "scale=2;($TX_bytes_later - $TX_bytes)*8/1024/1024/3"|bc`
    speed_TX_P=`echo "scale=2;($TX_pac_later - $TX_pac)/1000/3"|bc`
    printf "%-3s %-3.2f %-4s %-3.2f %-10s %-4s %-3.2f %-4s %-3.2f %-4s\n" IN: $speed_RX Mb/s $speed_RX_P kp/s OUT: $speed_TX Mb/s $speed_TX_P kp/s    # 前面的%-xxs 补习和后面的字段数量一致,默认是空格分段
done 

143149_gMxb_2341284.png

转载于:https://my.oschina.net/u/2341284/blog/701864

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值