Leyendo el fichero access.log de Apache desde línea de comandos en Linux

Esta tarde ando aburrido y he entrado por el acceso SSH que me ofrece mi empresa de hosting a curiosear un poco. He accedido al directorio donde se encuentran los logs y he empezado a leerlos. Al final he escrito unos cuantos comandos sencillos pero que permiten encontrar información interesante en los logs y demuestran el potencial de la línea de comandos de Linux.

Listado de IPs únicas que ha accedido hoy a tu web


cat access.log.2011-02-24 | cut -d " " -f 1 | sort | uniq 
109.230.216.XXX
110.75.164.XXX
114.80.93.XXX
.
.
.
95.60.25.XXX
95.61.0.XXX
95.63.178.XXX

Cuantas IPs han accedido hoy a tu web


cat access.log.2011-02-24 | cut -d " " -f 1 | sort | uniq | wc -l
1830
#El día 24 de febrero hubieron 1830 IPs diferentes conectadas al blog. Contrastando con los datos de Google Analytics puedo ver que es bastante verídico el dato..

Contar cuantas veces accede cada IP a tu web


cut -d " " -f 1 access.log.2011-02-24 | sort | uniq -c | sort
    323 67.205.46.XXX
    587 78.136.66.XXX
    794 190.233.141.XX
    962 189.155.9.XXX
   1081 95.17.167.XXX

El modificador -c del comando uniq hace que además de agrupar por IPs, muestre a la izquierda el número de veces que se repetía esta IP.. muy útil.

Como veis, usando los comandos de manipulación de texto de Linux se puede obtener mucha información de los logs. Esto es sólo un ejemplo, se podría obtener mucha información del error.log o de los logs de ModSecurity que podríamos utilizar para tareas de mantenimiento del servidor como por ejemplo añadir IPs a una lista negra de bloqueos para IPs que generan demasiadas entradas de determinado error… en fín, lo que nuestra imaginación de de sí..

Compartir:
Abrir chat
¿Tienes alguna duda que podamos aclarar?