码迷,mamicode.com
首页 > 系统相关 > 详细

查看Linux服务器网卡流量小脚本shell

时间:2016-06-07 16:33:48      阅读:307      评论:0      收藏:0      [点我收藏+]

标签:统计网卡流量

    有时我们需要较为实时的查看服务器上的网卡流量,这里我写了个shell小脚本。脚本中用了while true“死循环”,每隔10s从“/proc/net/dev”中取一次值并根据10s内的差值计算10s内的平均带宽;按ctrl+c停止执行。脚本兼容centos6和7,脚本不太复杂,而且脚本中注释也比较细致,所以我就不过多解释脚本内容了。

注:1kb=8字节,1Mb=1024kb

#!/bin/sh
 
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这一步为了同时兼容centos6和7
    TX_bytes=`cat $file|grep $1|sed ‘s/^ *//g‘|awk -F‘[ :]+‘ ‘{print $10}‘`
    sleep 10
    RX_bytes_later=`cat $file|grep $1|sed ‘s/^ *//g‘|awk -F‘[ :]+‘ ‘{print $2}‘`
    TX_bytes_later=`cat $file|grep $1|sed ‘s/^ *//g‘|awk -F‘[ :]+‘ ‘{print $10}‘`
 
    #B*8/1024/1024=Mb
    speed_RX=`echo "scale=2;($RX_bytes_later - $RX_bytes)*8/1024/1024/10"|bc`
    speed_TX=`echo "scale=2;($TX_bytes_later - $TX_bytes)*8/1024/1024/10"|bc`
 
    printf "%-3s %-3.1f %-10s %-4s %-3.1f %-4s\n" IN: $speed_RX Mb/s OUT: $speed_TX Mb/s
done

本文出自 “激情燃烧的岁月” 博客,请务必保留此出处http://liuzhengwei521.blog.51cto.com/4855442/1786936

查看Linux服务器网卡流量小脚本shell

标签:统计网卡流量

原文地址:http://liuzhengwei521.blog.51cto.com/4855442/1786936

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!