监控Linux流量Shell版

想要实时查看linux流量情况,又不想再去下第三方工具,可以直接写脚步运行!

创新互联公司主营南城网站建设的网络公司,主营网站建设方案,重庆APP开发公司,南城h5成都小程序开发搭建,南城网站营销推广欢迎南城等地区企业咨询

系统:centos 6.5

原理:从/proc/net/dev中获取到流量情况,再通过换算并除以间隔时间来得到流量单位M

#------------------
#Author:Administrator
#Created:2015-04-10
#------------------
#!/bin/bash

#使用方法
usage()
{
  echo "useage: $0 ethname intervel"
  exit 0
}

#网口配置
if [ $# -gt 1 ];then
  ethname=$1
  num=`ifconfig|grep ${ethname}|wc -l`
  if [ $num -gt 0 ];then
  ethname=$1
  else
    echo "Can't find $ethname,Please Check"
    exit 1
  fi
fi

#时间配置
intervel=1
if [ $# -gt 0 ]; then
  interval=$2
  test=`expr "$interval" \* 0`
  if [ "$test" != "0" ]; then
        echo "Invalid param '$interval' . It should be a integer number. Usage: $0 ethname intervel"
        exit -1 
  fi
  if [ $interval -lt 1 ]; then
        echo "Invalid param '$interval' . It should be > 0 (seconds). Usage: $0 ethname intervel"
        exit -1
  fi
fi

#函数判断
if [ $# -ne 2 ]
then
 usage
fi

echo "$0 is starting,Device is $1,Intervel is $2"
echo -e "\n"

typeset Rev old_Rev

eth=$1
intervel=$2

old_Rev=`cat /proc/net/dev|grep $eth| awk '{print $1}'| awk -F : '{print $2}'`
old_Send=`cat /proc/net/dev|grep $eth|awk '{print $9}'`
#echo "old_Rev is $old_Rev"
#echo "Old_send is $old_Send"

while true
 do
 sleep $intervel

 Rev=`cat /proc/net/dev|grep $eth|awk '{print $1}'|awk -F : '{print $2}'`
 Send=`cat /proc/net/dev|grep $eth|awk '{print $9}'`
#echo "Rev is $Rev"
#echo "Send is $Send"

 diff_1=`awk -v Rev=$Rev -v old_Rev=$old_Rev -v intervel=$intervel 'BEGIN{printf "Receive is %6.2f", ( Rev - old_Rev ) / 1024 / 1024 / intervel * 8}'`

 diff_2=`awk -v Send=$Send -v old_Send=$old_Send -v intervel=$intervel 'BEGIN{printf "Send is %6.2f", ( Send - old_Send ) / 1024 / 1024 / intervel * 8}'`

 echo "`date +'%Y-%m-%d %H:%M:%S'` Speed: IN ${diff_1} mbps OUT ${diff_2} mbps"

 old_Rev=$Rev
 old_Send=$Send
done

网站题目:监控Linux流量Shell版
网页URL:http://www.36103.cn/qtweb/news9/1759.html

网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等

广告

声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联