NIC単位のトラフィックログ取得
をテンプレートにして作成
[
トップ
] [
新規
|
一覧
|
検索
|
最終更新
|
ヘルプ
]
開始行:
目次~
#contents
**概要 [#v96fdc6c]
NIC単位でトラフィック量を記録するスクリプト。
**使用法方法 [#b0ff7717]
適当な位置にスクリプトを保管して実行する。~
スクリプトを配置したディレクトリ内にtraffic-logディレクト...
**コード [#b26e5486]
#!/bin/sh
# ---------------------------
# Traffic Log Script
# ---------------------------
# Version : 1.0
# Date : 2012/03/25
#
export LANG=C
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:$PATH
##
## Set
##
#IF=( bond0 bond1 eth0 eth1 eth2 eth3 eth4 eth5 eth6 )
IF=( eth0 eth1 eth2 eth3 )
#IF=( eth2 )
INTERVAL="5"
DATE=`date +%Y%m%d-%H%M%S`
LOGDIR="./traffic-log"
LOGNAME="traffic_"$DATE".log"
##
## Check
##
test -d $LOGDIR || mkdir $LOGDIR
##
## Execute
##
while :
do
i=0
n=${#IF[@]}
while [ $i -lt $n ];
do
## init
DATETIME=`date +%Y/%m/%d-%H:%M:%S`
if [ ! -f $LOGDIR/${IF[i]}"-"$LOGNAME ]; then
echo "Interface Traffic Log for ("${IF[i]}")" >> $LOGDI...
echo "Date,RX(Total bytes),TX(total bytes),RX(diff),TX(...
echo "START,0,0,0,0" >> $LOGDIR/${IF[i]}"-"$LOGNAME
fi
## get now value
RXNOW=`ifconfig ${IF[i]} | grep "bytes:" | awk '{print $...
TXNOW=`ifconfig ${IF[i]} | grep "bytes:" | awk '{print $...
## get last value
RXLAST=`tail -1 $LOGDIR/${IF[i]}"-"$LOGNAME | cut -d , -...
TXLAST=`tail -1 $LOGDIR/${IF[i]}"-"$LOGNAME | cut -d , -...
## calc (NOW - LAST)
RX=`expr $RXNOW - $RXLAST`
TX=`expr $TXNOW - $TXLAST`
## log output
echo $DATETIME","$RXNOW","$TXNOW","$RX","$TX 2>&1 >> $LO...
## out put
echo "--------------------------------------"
echo ${IF[i]}
echo "RX(incoming) = "$RX" bytes"
echo "TX(outgoing) = "$TX" bytes"
##
i=$(($i+1))
done
echo "--------------------------------------"
sleep $INTERVAL
done
#EOF
終了行:
目次~
#contents
**概要 [#v96fdc6c]
NIC単位でトラフィック量を記録するスクリプト。
**使用法方法 [#b0ff7717]
適当な位置にスクリプトを保管して実行する。~
スクリプトを配置したディレクトリ内にtraffic-logディレクト...
**コード [#b26e5486]
#!/bin/sh
# ---------------------------
# Traffic Log Script
# ---------------------------
# Version : 1.0
# Date : 2012/03/25
#
export LANG=C
export PATH=/bin:/sbin:/usr/bin:/usr/sbin:$PATH
##
## Set
##
#IF=( bond0 bond1 eth0 eth1 eth2 eth3 eth4 eth5 eth6 )
IF=( eth0 eth1 eth2 eth3 )
#IF=( eth2 )
INTERVAL="5"
DATE=`date +%Y%m%d-%H%M%S`
LOGDIR="./traffic-log"
LOGNAME="traffic_"$DATE".log"
##
## Check
##
test -d $LOGDIR || mkdir $LOGDIR
##
## Execute
##
while :
do
i=0
n=${#IF[@]}
while [ $i -lt $n ];
do
## init
DATETIME=`date +%Y/%m/%d-%H:%M:%S`
if [ ! -f $LOGDIR/${IF[i]}"-"$LOGNAME ]; then
echo "Interface Traffic Log for ("${IF[i]}")" >> $LOGDI...
echo "Date,RX(Total bytes),TX(total bytes),RX(diff),TX(...
echo "START,0,0,0,0" >> $LOGDIR/${IF[i]}"-"$LOGNAME
fi
## get now value
RXNOW=`ifconfig ${IF[i]} | grep "bytes:" | awk '{print $...
TXNOW=`ifconfig ${IF[i]} | grep "bytes:" | awk '{print $...
## get last value
RXLAST=`tail -1 $LOGDIR/${IF[i]}"-"$LOGNAME | cut -d , -...
TXLAST=`tail -1 $LOGDIR/${IF[i]}"-"$LOGNAME | cut -d , -...
## calc (NOW - LAST)
RX=`expr $RXNOW - $RXLAST`
TX=`expr $TXNOW - $TXLAST`
## log output
echo $DATETIME","$RXNOW","$TXNOW","$RX","$TX 2>&1 >> $LO...
## out put
echo "--------------------------------------"
echo ${IF[i]}
echo "RX(incoming) = "$RX" bytes"
echo "TX(outgoing) = "$TX" bytes"
##
i=$(($i+1))
done
echo "--------------------------------------"
sleep $INTERVAL
done
#EOF
ページ名: