viernes, 11 de febrero de 2011

Apache: Mostrar los accesos de access_log en formato tabular

Con el siguiente comando en bash mostraremos 3 campos del archivo access_log de apache(/var/log/apache2/access_log). En dicho archivo se almacenan los accesos (peticiones) a nuestro servidor apache.

Se mostrarán 3 campos : ip, día (en fommato dd/mm/yyyy) y la hora. Al ser en formato tabular será facil de editar con cualquier hoja de cálculo. El comando es el siguiente:
cat access_log | cut -d ' ' -f 1,4 | perl -pi -e 's/((\d+\.\d+\.\d+\.\d+)|(::1)) \[(\d+\/.{3}\/\d{4}):/$1\t$4\t$5/' | sort -u

La salida será algo así:
::1 11/Feb/2011 12:35:26
::1 11/Feb/2011 12:35:27
192.168.1.2 11/Feb/2011 12:35:23
192.168.1.45 11/Feb/2011 12:35:24
192.168.1.57 11/Feb/2011 12:35:22
192.168.1.124 11/Feb/2011 12:35:26