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í..