트래픽을 간단히 측정할수 있는 쉘스크립트
서버를 운용하다보면 가끔씩 트래픽을 보고싶을 때가 있는데. 김정균님의 쉘스크립트를 수정한 것입니다. 김정균님 한테는 죄송.
실행 예 )
./transfer eth0
측정중입니다. 기다려주세요
수신(in) 1 kbyte/s
송신(out) 28 kbyte/s
#!/bin/sh
#
# Scripted by JoungKyun Kim
# 2001.2.15 http://www.oops.org
# This Script follows GPL2 License
if [ "$1" != "" ]; then
# ethnet device
ETH="$1:"
CHECK=/proc/net/dev
CAT=/bin/cat
GREP="/bin/grep ${ETH}"
SED="sed -e s/${ETH}//"
UPTIME=/usr/bin/uptime
# parcket user check
set `${CAT} ${CHECK} | ${GREP} | ${SED}`
# Transmit packet
let "in1 = $1"
let "out1 = $9"
echo "측정중입니다. 기다려주세요"
sleep 10
set `${CAT} ${CHECK} | ${GREP} | ${SED}`
let "in0 = $1"
let "out0 = $9"
let " in = ($in0 - $in1)/(10*1024)"
let " out = ($out0 - $out1)/(10*1024)"
echo "수신(in) $in kbyte/s"
echo "송신(out) $out kbyte/s"
else
echo "USAGE: $0 [ethernet device no]"
echo "ex) ./$0 eth0"
fi
exit 0
---------------------------------------------------------------------
김정균님의 소스 첨부파일에서 확인하여 주세요
ftp://mirror.oops.org/pub/Linux/Source/chkbandwidth
[root@main Linux]# /usr/local/bin/chkbandwidth -h
chkbandwidth v1.0
사용법: /usr/local/bin/chkbandwidth [옵션]=[경로]
옵션 :
-interface=device 측정할 ethernet interface [ 기본: eth0 ]
-unit=byte 측정 단위 [ 기본: bit ]
-sec=second 측정할 시간 간격 [ 기본: 1초 ]
-roop=1 -sec 값씩 계속 측정 [ default: 0 ]