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