PDA

View Full Version : dsl volume overview



user unknown
07-26-2004, 03:59 AM
I wrote a script to give me an overview about my internet-volume-usage.


!/bin/bash
#
# Usage : $0 Jun
#
# (c) Stefan Wagner 2004 - feel free to use, update or delete
#
function usage ()
{
echo Usage : $0 MONTH
echo Example : $0 Jun
}
function msgexit ()
{
echo $1
exit $2
}
if [ $# -ne 1 ] ; then
usage
exit 2
fi
#
file=/var/log/pppstatus/pppstatus.ppp0.$1-2004.log
#
[ -f $file ] || msgexit "file not found: $file" 1
bytes=$(cat $file | grep 'RX Bytes:' | sed 's/.*RX Bytes: //g' | sed 's/RX Err.*//g')
# echo "by:" $bytes
equation=$(echo $bytes | tr ' ' '+' | sed 's/ *+/+/g;s/+$//g')
# echo "eq:" $equation
echo -n "sum="
zahl=$( echo "$equation" | bc)
echo $zahl | rev | sed 's/\([0-9]\{3\}\)/\1./g' | rev | sed 's/^\.//'


dependencies: cat, grep, sed, tr, echo, bc, rev

problems:
- My account isn't measured by calendarian months, but from 20.x to 19.x+1
- In year 2005, 06, 07 ... you have to update the script.
- It evaluates only the downstream, not upstream
- no errorhandling
- Information isn't valid, if account is used from several computers/ installations.
- For US-Numberformat you have to replace '.' in the last line by ','.

goals: Gives a rough overview about monthly traffic, is easy to adopted for comming years, easy in usage and formats it's output in good readable way (Summe=1.345.367.245).

How it works: The logfile is searched for the 'RX: ....' - pattern, everything around is stripped off.
The numbers are transformed to an equation, which is passed to bc, (the commandline calculator) and the result formatted for better human readability.

Feedback is welcome.