El lun, 14-11-2005 a las 08:13 +0100, Pablo Braulio escribió: > El Lunes, 14 de Noviembre de 2005 01:49, Ricardo Araoz escribió: > > Me quedó una duda... Por qué razón guardás un temp_log. No sería más > > directo hacer > > wc -l archivo_log | cut -d " " -f1 >archivo_lineas > > y ahorrarte el cat ? O me estoy perdiendo de algo? > > La intención es sacar únicamente los logs generados entre dos fechas. Es > decir, si se ejecuta cada hora, pues únicamente quiero ver los logs de ese > intervalo. > > Como no consigo hacer comparación de fechas, lo que estoy probando es saber la > cantidad de líneas que tiene el syslog a una hora. Guardo esa cantidad en un > archivo y luego, en la siguiente ejecución (una hora mas tarde), lo uso para > restarlo al número de líneas totales. De este modo obtengo sólo las últimas > líneas generadas del syslog, que son las que necesito. > > Si ejecuto el wc directamente desde el syslog, y obtenido el número final de > líneas a mostrar con tail, pierdo tiempo comparando las líneas antes de sacar > los logs necesarios. Bueno tampoco se tardaría mucho, pero es que me > interesan los logs de iptables y se generan muchas. > Te paso algo muy basico en perl para que veas que tu problema se soluciona con perl ------------------------------------------------------------------------- #!/usr/bin/perl my $fecha = @ARGV[0]; while (<STDIN>) { print if /^$fecha/; } --------------------------------------------------------------------------- usalo de la siguiente manera: cat archivo | nombre_script "Nov 14" El script tiene que tener permiso de ejecucion y el aprametro que le pasas tiene que ser el comienzo de la linea con la fecha que estas buscando > -- Angel Claudio Alvarez Usuario Linux Registrado 143466 GPG Public Key en http://pgp.mit.edu key fingerprint = 3AED D95B 7E2D E954 61C8 F505 1884 473C FC8C 8AC4
Attachment:
signature.asc
Description: This is a digitally signed message part