您的位置:首页 > 运维架构 > Shell

Shell脚本监控网卡流量

2012-05-09 21:38 751 查看
说明:此脚本可以监控Linux系统下网卡流量,其中的注释信息本人用多个减号“-”划分开,为了方便这一块功能代码的表示。大家可以下载自己任意修改此脚本。本人属于一级笨鸟级别,希望大家能对脚本不足的地方给出评价。谢谢啦O(∩_∩)O~

#!/bin/bash

band () {

while true

do

rx1=$(cat /proc/net/dev | grep "eth0" | tr : " " | awk '{print $2}')

tx1=$(cat /proc/net/dev | grep "eth0" | tr : " " | awk '{print $10}')

sleep 1

rx2=$(cat /proc/net/dev | grep "eth0" | tr : " " | awk '{print $2}')

tx2=$(cat /proc/net/dev | grep "eth0" | tr : " " | awk '{print $10}')

clear

rxdiffer=$(($rx2 - $rx1))

txdiffer=$(($tx2 - $tx1))

#-----------INT KB/MB------

RRXKB=$(($rxdiffer/1024))

TTXKB=$(($txdiffer/1024))

RRXMB=$(($RRXKB/1024))

TTXMB=$(($TTXKB/1024))

#-------------------------------

#sleep 1

#---------------precision KB/MB---------------------

RXKB=$(awk 'BEGIN {print ('$rxdiffer'/1024)}')

TXKB=$(awk 'BEGIN {print ('$txdiffer'/1024)}')

RXMB=$(awk 'BEGIN {print ('$RXKB/1024')}')

TXMB=$(awk 'BEGIN {print ('$TXKB/1024')}')

#+++other count precision method+++

#RXKB=$(echo "scale=2;${rxdiffer}/1024" | bc)

#TXKB=$(echo "scale=2;${txdiffer}/1024" | bc)

#++++++++++++++++++++++++++++++++++

#---------------------------------------------------

#---------judge KB/MB--------------

if [ $RRXKB -lt 1024 ]; then

unit1="Kibp/s"

else

unit1="Mibp/s"

RXKB="$RXMB"

fi

if [ $TTXKB -lt 1024 ]; then

unit2="Kibp/s"

else

unit2="Mibp/s"

TXKB="$TXMB"

fi

#-----------------------------------

#sleep 1

echo -e $(date +%T;echo "-";date +%F;echo ">";echo "bandwidth")

printf "\n"

echo "IN_bandwidth: $rxdiffer /Byte"

echo "OUT_bandwidth: $txdiffer /Byte"

#-------------------other input medthod-------------------

#echo -e $(date +%T)

#echo -e "------------------------------------------------"

#echo -e "\t IN_bandwidth \t\t OUT_bandwidth"

#echo -e "\t ${RXKB} /$unit1 \t\t ${TXKB} /$unit2"

#echo -e "------------------------------------------------"

#---------------------------------------------------------

printf "%s\n" "--------------------------------------------------"

printf "\t%s\t" "IN_Bandwidth"

printf "\t%s\t\n" "OUT_Bandwidth"

printf " \n"

printf " %10.2f /$unit1" "$RXKB"

printf "\t %10.2f /$unit2\n" "$TXKB"

printf "%s\n" "--------------------------------------------------"

done

}

band

本文出自 “网络” 博客,请务必保留此出处http://fengqiang.blog.51cto.com/1133264/859163
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: