[bcn-pm] Proceso de estadisticas avanzando

Sergio Arias sergioacodigo.com
Dma Maig 17 03:23:00 PDT 2005


El dl 16 de 05 del 2005 a les 12:40 +0200, en/na Jose Pedro Andres va
escriure:
> Buenas:
>     Estoy programando un demonio para procesar las estadisticas web de 
> una maquina con unos 500 dominios.
>     El tema esta en que me gustaria borrar unicamente los logs de 
> aquellas lineas que se hayan procesado ( para no sobrecargar la maquina 
> las voy procesando de mil en mil lineas ).
>     He probado con el modulo Tie::File, para usar el archivo de log como 
> si de un array se tratara, pero con archivos grandes ( tengo logs de 
> hasta 270 megas ), la maquina se pone a mil de carga en unos segundos.
> 
>  ¿ Conoceis alguna forma mas sencilla de ir "quitandole" lineas a un 
> archivo de principio a fin ? No me gustaria tirar de archivos 
> temporales, pero parece ser que va a ser la unica solucion.

Hola Jose Pedro Andres,

Tampoco le veo el problema a ir leyendo directamente y procesando de una
en una las (o de mil en mil) las líneas de entrada. Ten cuidado con el
unlink (borrado) del archivo en el código que te ejemplifica fxn. 

Dependiendo del tipo de cálculo estadístico que quieras llevar a cabo
necesitarás tener cargada en memoria más o menos líneas. En el perldoc
de Tie::File veo que puede desactivarse el "cacheado" de
lectura/escritura pero creo que es una complicación innecesaria para
archivos grandes. 

Hay un comando (split) de los text/core/utils que sirve para rebanar los
archivos grandes.
http://www.gnu.org/software/coreutils/manual/html_node/coreutils_20.html#SEC20

Con el demonio, ¿tienes pensado procesar los logs "en directo"?
http://httpd.apache.org/docs/logs.html#piped

Salut



Més informació de la llista de correu Barcelona-pm