wanpipe/scripts/stats.sh

100 lines
2.8 KiB
Bash
Executable File

#!/bin/bash
CMD=none
token=overrun
rec=0
while [ ! -z $1 ]
do
if [ "$1" = "clear" ]; then
CMD=clear
fi
if [ "$1" = "overrun" ]; then
token=overrun
fi
if [ "$1" = "ifstat" ]; then
token=packet
fi
if [ "$1" = "ifstat-rx" ]; then
token="RX.*packet"
fi
if [ "$1" = "ifstat-tx" ]; then
token="TX.*packet"
fi
if [ "$1" = "pmon" ]; then
token="pmon"
fi
if [ "$1" = "pmon_e1" ]; then
token="pmon_e1"
fi
if [ "$1" = "record" ]; then
rec=1
fi
shift
done
DEVS=$(cat /proc/net/dev | egrep "w.*g" | cut -d':' -f1 | xargs)
#echo "$DEVS"
if [ $rec = 1 ]; then
echo $(date) >> stats.out
fi
for dev in $DEVS
do
if [ "$CMD" = "clear" ]; then
wanpipemon -i $dev -c fc
wanpipemon -i $dev -c fpm
fi
if [ "$token" = "pmon" ]; then
wanpipemon -i $dev -c Ta > t.$$
line=`cat t.$$ | grep -e Line | cut -d':' -f2 | awk ' { print $1 }'`
bit=`cat t.$$ | grep -e Bit | cut -d':' -f2 | awk ' { print $1 }'`
out=`cat t.$$ | grep -e Out | cut -d':' -f2 | awk ' { print $1 }'`
sync=`cat t.$$ | grep -e Sync | cut -d':' -f2 | awk ' { print $1 }'`
r_over=`ifconfig $dev | grep RX.*overruns | awk '{ print $5 }' | cut -d':' -f2`
t_over=`ifconfig $dev | grep TX.*overruns | awk '{ print $5 }' | cut -d':' -f2`
con_status=`ifconfig $dev | grep -c RUNNING`
level=`cat t.$$ | grep "Rx Level" | cut -d':' -f2 | awk '{print $1}'`
if [ $level = ">" ]; then
level=`cat t.$$ | grep "Rx Level" | cut -d':' -f2 | awk '{print $2}'`
fi
rm t.$$
echo -e "IF $dev | Pmon: Line=$line Bit=$bit Out=$out Sync=$sync Lvl=$level | Overrun: R=$r_over T=$t_over | Status=$con_status"
continue
fi
if [ "$token" = "pmon_e1" ]; then
wanpipemon -i $dev -c Ta > t.$$
line=`cat t.$$ | grep -e Line | cut -d':' -f2 | awk ' { print $1 }'`
far=`cat t.$$ | grep -e "Far End" | cut -d':' -f2 | awk ' { print $1 }'`
crc4=`cat t.$$ | grep -e CRC4 | cut -d':' -f2 | awk ' { print $1 }'`
fas=`cat t.$$ | grep -e FAS | cut -d':' -f2 | awk ' { print $1 }'`
sync=`cat t.$$ | grep -e Sync | cut -d':' -f2 | awk ' { print $1 }'`
r_over=`ifconfig $dev | grep RX.*overruns | awk '{ print $5 }' | cut -d':' -f2`
t_over=`ifconfig $dev | grep TX.*overruns | awk '{ print $5 }' | cut -d':' -f2`
con_status=`ifconfig $dev | grep -c RUNNING`
level=`cat t.$$ | grep "Rx Level" | cut -d':' -f2 | awk '{print $1}'`
if [ $level = ">" ]; then
level=`cat t.$$ | grep "Rx Level" | cut -d':' -f2 | awk '{print $2}'`
fi
rm t.$$
echo -e "IF $dev | Pmon: Line=$line Far=$far CRC4=$crc4 FAS=$fas Sync=$sync Lvl=$level | Overrun: R=$r_over T=$t_over | Status=$con_status"
continue
fi
if [ "$token" = "overrun" ]; then
line=`wanpipemon -i $dev -c sc | grep "$token"`
else
line=`ifconfig $dev | grep "$token"`
fi
if [ $rec = 1 ] ; then
echo "IF => $dev\n$line" | tee -a stats.out
else
echo -e "IF => $dev\n$line"
fi
done