目次~
#contents

**概要 [#w9d81f6b]
コード内の配列で指定したインターフェイスのトラフィック値をifconfigコマンドで取得し、ログに記録するスクリプト。~

**設定 [#l59dd110]
Setセクションの以下に設定を行う

|IF|取得対象のインターフェイス名の配列|
|INTERVAL|取得間隔(秒)|

**使い方 [#p256d560]
適当なディレクトにファイルを配置して実行する。~
無限ループでログを取り続けるため、停止するときはCtrl+Cなどを使う。~
ログはスクリプトを実行したディレクトリ内にtraffic-logというディレクトリを生成し、インターフェイス毎に別ファイルで記録される。


**コード [#t1a31da0]
 #!/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]}")" >> $LOGDIR/${IF[i]}"-"$LOGNAME
  echo "Date,RX(Total bytes),TX(total bytes),RX(diff),TX(diff)" >> $LOGDIR/${IF[i]}"-"$LOGNAME
  echo "START,0,0,0,0" >> $LOGDIR/${IF[i]}"-"$LOGNAME
 fi
 
 ## get now value
 RXNOW=`ifconfig ${IF[i]} | grep "bytes:" | awk '{print $2}' | sed -e "s/bytes://g"`
 TXNOW=`ifconfig ${IF[i]} | grep "bytes:" | awk '{print $6}' | sed -e "s/bytes://g"`
 
 ## get last value
 RXLAST=`tail -1 $LOGDIR/${IF[i]}"-"$LOGNAME | cut -d , -f 2`
 TXLAST=`tail -1 $LOGDIR/${IF[i]}"-"$LOGNAME | cut -d , -f 3`
 
 ## calc (NOW - LAST)
 RX=`expr $RXNOW - $RXLAST`
 TX=`expr $TXNOW - $TXLAST`
 
 ## log output 
 echo $DATETIME","$RXNOW","$TXNOW","$RX","$TX 2>&1 >> $LOGDIR/${IF[i]}"-"$LOGNAME
 
 ## 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

トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS