Inicio > Techs > Ordenando el accesslog de Apache

Ordenando el accesslog de Apache

viernes, 24 de agosto de 2012 Dejar un comentario Ir a comentarios

Muchas veces tenés varios logs de Apache2 y necesitas combinarlos para generar un reporte o similar. He aquí una pequeña guia..

Combinar los logs es facil, algo similar a esto te funcionaría:

– Creas una carpeta temporaria (asegurate de tener espacio disponible!)

mkdir /tmp/logs
cd /tmp/logs

– Copias todos los accesslogs a esa carpeta

cp /var/log/apache2/access_log* /tmp/logs/

– Descomprimis los archivos gzipeados

gunzip access_log*.gz

– Los mandas todos a un unico archivo:

cat access_log* > apache2-access.log

Con esto vas a tener un unico log, con todo mesclado dentro.

Si necesitas ordenarlo por fecha correctamente, podes usar este script:

#!/bin/sh
#
# apachelog-sort.sh - Sort Apache2 accesslog file
#
if [ $# -ne 2 ]
then
	echo "\n### Error! ### - Wrong Arguments!\n"
	echo "Usage: ./`basename $0`  \n"
	exit 1
fi
if [ ! -f $1 ]; then
	echo "\n### Error! ### - Input log file doesn't exist ($1)\n"
	echo "Usage: ./`basename $0`  \n"
	exit
fi
echo "Sorting $1 into $2 ..."
sort -t ' ' -k 4.9,4.12n -k 4.5,4.7M -k 4.2,4.3n -k 4.14,4.15n -k 4.17,4.18n -k 4.20,4.21n $1 > $2

Lo guardas como «apachelog-sort.sh» y lo ejecutas:

chmod 755 /apachelog-sort.sh
./apachelog-sort.sh apache2-access.log apache2-access-sorted.log

Esto nos dejará en el archivo apache2-access-sorted.log un único log, ordenado por fecha.

That’s all.

Categories: Techs Tags: , , , , , ,
  1. Sin comentarios aún.
  1. Sin trackbacks aún.