[glux] Statistiche ppp

@arminillo carminillo@tiscali.it
Lun 14 Giu 2004 08:23:25 CEST


Maxxer wrote:
> Il dom, 2004-06-13 alle 06:49, @arminillo ha scritto:
> 
> 
>>Mi sa che devo vedere Oracle che controllo fa... perchè te lo installa 
>>solo se la distro è RedHat
> 
> 
> che centra oracle?

Oracle ha uno script bash che rileva se la tua distro è RH... altrimenti 
non te lo installa. Potrei vedere i criteri che utilizza no!?!


> 
> 
>>>/usr/local/bin/pppstat.sh | mail -s 'Statistiche ppp' maxxer < -
>>
>>A dire il vero una cosa simile l'avevo già fatta... ovviamente non mi 
>>aspetto che le persone in lista abbiano un server di posta semi 
>>casalingo e quindi ho pensato che fosse inutile.... comunque la tua 
>>stringa potrebbe essere corretta ;) (Meglio mailx... magari ti uuencodi 
> 
> 
> poi l'ho provata, ma non funziona, mi da errore...
> tra l'altro ci sarebbe da parametrizzare il mese!!
> mailx non ce l'ho installato su rh.
> 
> 
>>Il timestamp dove?
> 
> 
> beh in effetti c'è la data della mail.
> 
> 

Comunque ho fatto delle modifiche....

#!/bin/bash

if [ $# -ne 2 ]
then
         printf "\n\tUSA: $(basename $0) <Unità di misura (b k o M)> 
<Month (Gen,Feb,Mar,Apr,May,Jun,Jul,Aug,Sep,Oct,Nov,Dec)> <maildest 
(NONE se non hai un server di posta locale o non vuoi ricevere 
l'email)>\n\n"
         exit 1
fi

TS=$(date +%d%m%YYYY"_"%H%M)
mese=$2
MAILDEST=$3
OUTCSV="${TS}_stat_${mese}.csv"
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\n"
printf "Inviati\t\t::\t$(inviati)${unit}\n"
printf "Ricevuti\t::\t$(ricevuti)${unit}\n\n"
printf "TOT\t\t::\t$(totali)${unit}\n\n"



if [ $MAILDEST = NONE ]
then
	exit
else
	### GENERAZIONE FILE CSV E INVIO VIA MAIL ###
	echo "Mese;Inviati;Ricevuti;Totali" > $OUTCSV
	echo "${mese};$(inviati);$(ricevuti);$(totali)" >> $OUTCSV

	{ echo "In allegato il report di ${mese} aggiornato al ${TS}"; uuencode 
$OUTCSV $OUTCSV; } | mailx -s "PiPiPistat :: $mese () $TS" $MAILDEST
	if [ $? -eq 0 ]
	then
		echo "Email inviata all'indirizzo $MAILDEST"
	else
		echo "Probabilmente ci sono stati problemi nell'invio della mail... 
controlla le impostazioni del tuo server smtp"
	fi
fi


Maggiori informazioni sulla lista glux