但mrtg要架起來到能看,需要很多道的手續,這幾天突發奇想,看看有沒有可以用Linux Script就可以解決的方法。
其實是有的 cat /proc/net/dev
當然~這不是給"人"看的....
這還需要作一些加工,可以把以下Script 存成執行的Bash Script
================================================
#!/bin/bash
#
# SCRIPT:
#
#
INTERFACE=$1
Interval=$2
if ( [[ $Interval == "" ]] ) ;then
#Default Interval Time
Interval=5
fi
if ( [[ $INTERFACE != "" ]] ) ; then
while [[ A == A ]]
do
INITTRR=`cat /proc/net/dev|grep $INTERFACE`
INITTRR_RxBytes=`echo $INITTRR|awk '{print $1}'|awk -F":" '{print $2}'`
INITTRR_RxPack=`echo $INITTRR|awk '{print $2}'`
INITTRR_TxBytes=`echo $INITTRR|awk '{print $9}'`
INITTRR_TxPack=`echo $INITTRR|awk '{print $10}'`
sleep $Interval
ENDTRR=`cat /proc/net/dev|grep $INTERFACE`
ENDTRR_RxBytes=`echo $ENDTRR|awk -F" " '{print $1}'|awk -F":" '{print $2}'`
ENDTRR_RxPack=`echo $ENDTRR|awk '{print $2}'`
ENDTRR_TxBytes=`echo $ENDTRR|awk '{print $9}'`
ENDTRR_TxPack=`echo $ENDTRR|awk '{print $10}'`
RESULT_RxBytes=$((( $ENDTRR_RxBytes-$INITTRR_RxBytes ) /$Interval/1024 ))
RESULT_RxPack=$(( $ENDTRR_RxPack-$INITTRR_RxPack ))
RESULT_TxBytes=$((( $ENDTRR_TxBytes-$INITTRR_TxBytes ) /$Interval/1024 ))
RESULT_TxPack=$(( $ENDTRR_TxPack-$INITTRR_TxPack ))
echo -e "$INTERFACE `date +%H:%M:%S` \t RxBytes:$RESULT_RxBytes KB/s \t TxBytes:$RESULT_TxBytes KB/s \t RxPack:$RESULT_RxPack \t TxPack:$RESULT_TxPack \t"
done
else
echo "Ex. $0 interface Interval"
echo "interface name:" `cat /proc/net/dev|grep :|awk -F":" '{print $1}'`
echo "Interval:1-999 Sec,default 5 sec"
fi
================================================
這樣就可以看到主機的網路流量囉
沒有留言:
張貼留言