entstat 으로 특정 network interface의 데이터 전송속도를 조회하는 스크립트...
여러형식으로 보정을 해보았으나, nmon이나 topas의 network 전송량과는 조금 다른 수치를 보임...
nmon 의 자체 로직과도 계산 방식은 동일하나 perfstat에 의해 계산되는 값이 측정 interval이나 산정 방식에 따라 약간의 차이가 나는 것으로 생각됨...
# cat net.sh
------------------------------------------------------------------------------------------------
#!/bin/sh
if [[ $# -ne 2 ]]
then
echo 'Usage: net.sh <$interface_name> <interval:second> '
echo ' ex. net.sh en0 2 '
exit
fi
while true
do before_all=`entstat -d ${1} | grep Bytes | grep -v grep | head -n 1`
before_recv=`echo ${before_all} | awk '{print $2}'`
before_send=`echo ${before_all} | awk '{print $4}'`
sleep ${2}
after_all=`entstat -d ${1} | grep Bytes | grep -v grep | head -n 1`
after_recv=`echo ${after_all} | awk '{print $2}'`
after_send=`echo ${after_all} | awk '{print $4}'`
((send=(after_send - before_send)/(1024*${2})))
((recv=(after_recv - before_recv)/(1024*${2})))
DATE=`date +"%y/%m/%d %H:%M:%S"`
echo ${DATE} " Recv KB/s:"$send" KB Sent KB/s:"$recv" KB "
done
------------------------------------------------------------------------------------------------