Contar peticiones/request por IP de un access_log de Apache en bash

Aqui os dejo una pequeña linea en bash para contar la cantidad de requests por IP en un access_log de Apache.

cat /var/log/httpd/access_log |awk '{print($1)}'|sort |uniq -c |sort

Aqui la explicacion de como funciona:
Lo primero que hacemos es abrir el archivo con cat, el contenido se pasa a awk con el cual obtenemos la primera columna (lo mismo lo podríamos hacer con cut, pero estoy más acostumbrado a awk). Eso nos devuelve la lista de las IPs. Eso lo pasamos a sort que ordena las IPs antes de poder pasarselo a uniq. Éste último comando, con el parámetro -c se ocupa de contar las líneas repetidas en un listado ordenado (por eso el sort anterior). Y por último le volvemos a pasar todo a sort para que lo ordene en forma ascendente de acuerdo a la cantidad de ocurrencias de cada IP.

  • Digg
  • del.icio.us
  • Facebook
  • Google Bookmarks
  • Bitacoras.com
  • email
  • FriendFeed
  • HackerNews
  • LinkedIn
  • Meneame
  • MySpace
  • Reddit
  • RSS
  • StumbleUpon
  • Technorati
  • Twitter
  • Yahoo! Buzz

Articulos relacionados:

2 Comments

  1. Kalin dice:

    Gracias por esto consejos, además de ser muy útiles.

  2. GhOsTi dice:

    denada kalin un saludo amigo

Leave a Comment