perl 로 해도 마찬가지 입니다.
이 스크립트를 기능 강화
(초 단위 설정, byte/bit 설정, roop 설정)을 한것을
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 ]
: bc 같은걸 쓰면 소숫점도 되지 않나요?
:
: echo "$in0 - $in1" | bc
:
: 하면 되지 않을라나..
:
:
: : 쉘 스크립트의 한계가 계산식에서 정수 연산 밖에 안된다는 점이
: : 있더군요. 계산은 perl -e 로 불러서 하시는 것이 낳을 것 같다
: : 는 생각입니다.
: :
: : : 서버를 운용하다보면 가끔씩 트래픽을 보고싶을 때가 있는데.
: : : 김정균님의 쉘스크립트를 수정한 것입니다.
: : : 김정균님 한테는 죄송.
: : :
: : : 실행 예 )
: : :
: : : ./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
:
: --
: 슬럼프...