On Tue, Oct 20, 1998 at 07:43:07PM -0300, Phillip Neumann wrote:
> Hola, que tal...
> 
> 
> Necesito un poco de ayuda con un script...
> 

        Nada, nada, se te echa una mano si hace falta :)
> 
> Necesito saber cuanto tiempo estoy conectado a la red. 
> 
> Hasta ahora llevo hecho un script que sabe contar...:
> 
> HORA=`date +%r`;
> MES=`date +%B`;
> NUMERO=`date +%d`;
> TIME1=`date +%s`;
> echo Enter para stop;
> read;
> TIME2=`date +%s`
> echo "Hoy, $NUMERO de $MES a las $HORA ---------\> $(((TIME2 -
> TIME1)/60)) [s]" 
> >> ~/prueba.log
> 
> 
> Pero me falta lo mas importante: que empieze cuando pon se ejecuta y
> pare cuando me desconecto... Creo que para eso existe etc/ppp/ip-up.d y
> /etc/ppp/ip-down.d cierto??

        Tal y como lo tienes ahora parece que se ejecuta una sola vez no? No
como un demonio, que est� continuamente dici�ndolo (sino tendr�as un log de
varios Ms de grande despu�s de algunos meses...)

> 
> Bueno entonces bastaria poner este script en etc/ppp/ip-up.d para que
> empieze al conectarme... ahora viene la pregunta... como lo hago para
> que pare cuando me desconecto????
> 

        Bien, creo que lo m�s sencillo es que pongas ese cuando te conectes
y que escriba eso en el log que indicas, yo lo cambiar�a por algo as� como:

echo "Hoy, `date` me he conectado" >>/var/log/prueba.log

        y el de ip.down similar pero diciendo "me he desconectado"

Luego hacer un programa aparte que coga el fichero de logs y calcule el
tiempo en base a la pareja de conectados/desconectados (esto es muy sencillo
si utilizas date +%s, porque solo es ir restando.
        El programita seguro que es un par de l�neas en perl, a ver....

#!/usr/bin/perl
while (<>) {
        chomp;
        if (/Hoy\, \d* me he conectado/) { $conectado=$1}
        if (/Hoy\, \d* me he desconectado/) { $desconectado=$1;
                $tiempo=$desconectado-$conectado if $desconectado > $conectado;
        }
}

print "\n Te has pasado $tiempo conectado";

        Por supuesto se pueden hacer m�s cosas interesantes, estad�sticas,
etc.. Para hacerlo te recomiendo que mires el paquete 'sac' que hace algo
similar pero con el wtmp (donde se guardan los accesos de los usuarios de
forma similar y al que se accede con el comando 'last').

        Bueno, eso es todo. 



        Saludete

        Javi

Responder a