[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: Scripts................




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


Reply to: