[glux] Statistiche ppp
@arminillo
carminillo@tiscali.it
Sab 12 Giu 2004 18:25:07 CEST
Ciao,
nei giorni scorsi, ho creato un piccolo generatore di stistiche per il
traffico ppp. Lo scopo era quello di tenere sotto controllo il traffico
effettuato e non superare le soglie di traffico flat GPRS....
So che in giro ci sarà sicuramente qualcosa del genere in giro, ma data
la semplicità dello script, ho pensato di crearmelo... una volta
lanciato appare lo USAGE in cui viene indicato di specificare l'unità di
misura dell'output e il mese per il quale si vogliono le statistiche.
Io l'ho creato su una mandrake, e penso che funziona su tutte le
distro... al massimo c'è da modificare il grep... vi posto il codice.
L'output è qualcosa del tipo:
Mese richiesto :: May
Unità di misura :: Megabyte
Inviati :: 50.10
Ricevuti :: 287.50
TOT :: 337.60
bye bye
@arminillo
------------------------------------------------------------------------------------------------------------------------------------------------------------------------
#!/bin/bash
if [ $# -ne 2 ]
then
printf "\n\tUSA: $(basename $0) <Unità di misura (b=bytes
k=kilobyte M=megabyte)> <Month
(Gen,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec)>\n\n"
exit 1
fi
mese=$2
case $1 in
b) moltiplicatore=1 && unit=bytes ;;
M) moltiplicatore=0.000001 && unit=Mbyte ;;
k) moltiplicatore=0.001 && unit=kbyte ;;
*) echo "Errore nel formato dati richiesto... esco" && exit 2 ;;
esac
### I parametri qui configurati vanno bene per quasi tutte le
distrubuzioni... motivo per modificarli
### può essere quello di una personalizzazione del demone ppp o della
dir/log di sistema
DIRLOG="/var/log" ## Indica la dir nella quale è contenuto il log da
analizzare
LOG=syslog ## Indica il log da analizzare
PPPSTRING=pppd ## Indica la stringa gestita dal demone ppp
#######################################################################################
cd $DIRLOG
printf "\n\tGeneratore di stastiche ppp\n"
function inviati {
grep $PPPSTRING $LOG | grep Sent | grep ^${mese} | awk -v
moltiplicatore=$moltiplicatore '{sum += $7;} END { printf "%.02f", sum *
moltiplicatore;}'
}
function ricevuti {
grep $PPPSTRING $LOG | grep Sent | grep ^${mese} | awk -v
moltiplicatore=$moltiplicatore '{sum += $10;} END { printf "%.02f", sum
* moltiplicatore;}'
}
function totali {
grep $PPPSTRING $LOG | grep Sent | grep ^${mese} | awk -v
moltiplicatore=$moltiplicatore '{sum += $10;} {summ += $7;} END { printf
"%.02f", (sum + summ) * moltiplicatore; }'
}
printf "\nMese richiesto\t::\t${mese}\n"
printf "Unità di misura\t::\t${unit} \n\n"
printf "Inviati\t\t::\t$(inviati)\n"
printf "Ricevuti\t::\t$(ricevuti)\n\n"
printf "TOT\t\t::\t$(totali)\n\n"
----------------------------------------------------------------------------------------------------------------------------------------------------------------------
Maggiori informazioni sulla lista
glux