<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Script para contar requests por IP de un access_log de Apache</title>
	<atom:link href="http://www.tail-f.com.ar/programacion/python/script-para-contar-requests-por-ip-de-un-access_log-de-apache.html/feed" rel="self" type="application/rss+xml" />
	<link>http://www.tail-f.com.ar/programacion/python/script-para-contar-requests-por-ip-de-un-access_log-de-apache.html</link>
	<description>Noticias y recursos para sysadmins Unix</description>
	<lastBuildDate>Fri, 03 Feb 2012 05:08:40 +0000</lastBuildDate>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
	<generator>http://wordpress.org/?v=3.2.1</generator>
	<item>
		<title>By: elbarto</title>
		<link>http://www.tail-f.com.ar/programacion/python/script-para-contar-requests-por-ip-de-un-access_log-de-apache.html/comment-page-1#comment-1268</link>
		<dc:creator>elbarto</dc:creator>
		<pubDate>Sun, 10 Oct 2010 15:52:20 +0000</pubDate>
		<guid isPermaLink="false">http://www.tail-f.com.ar/?p=234#comment-1268</guid>
		<description>De hecho es lo que hice en el post que escribí después de este:
http://www.tail-f.com.ar/programacion/bash/contar-requests-por-ip-de-un-access_log-de-apache-en-bash.html</description>
		<content:encoded><![CDATA[<p>De hecho es lo que hice en el post que escribí después de este:<br />
<a href="http://www.tail-f.com.ar/programacion/bash/contar-requests-por-ip-de-un-access_log-de-apache-en-bash.html" rel="nofollow">http://www.tail-f.com.ar/programacion/bash/contar-requests-por-ip-de-un-access_log-de-apache-en-bash.html</a></p>
]]></content:encoded>
	</item>
	<item>
		<title>By: David</title>
		<link>http://www.tail-f.com.ar/programacion/python/script-para-contar-requests-por-ip-de-un-access_log-de-apache.html/comment-page-1#comment-1266</link>
		<dc:creator>David</dc:creator>
		<pubDate>Sun, 10 Oct 2010 10:58:53 +0000</pubDate>
		<guid isPermaLink="false">http://www.tail-f.com.ar/?p=234#comment-1266</guid>
		<description>Otra forma de hacerlo sería con awk, sort y uniq, por ejemplo así:

awk &#039;{print $1}&#039; access_log&#124;sort&#124;uniq -c&#124;sort -nr

Una ventaja que tiene este método es que tarda la mitad que con python en procesar el fichero.

Un saludo :)</description>
		<content:encoded><![CDATA[<p>Otra forma de hacerlo sería con awk, sort y uniq, por ejemplo así:</p>
<p>awk &#8216;{print $1}&#8217; access_log|sort|uniq -c|sort -nr</p>
<p>Una ventaja que tiene este método es que tarda la mitad que con python en procesar el fichero.</p>
<p>Un saludo <img src='http://www.tail-f.com.ar/wp-includes/images/smilies/icon_smile.gif' alt=':)' class='wp-smiley' /> </p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Contar requests por IP de un access_log de Apache en BASH &#124; tail -f &#124; sysadmin</title>
		<link>http://www.tail-f.com.ar/programacion/python/script-para-contar-requests-por-ip-de-un-access_log-de-apache.html/comment-page-1#comment-55</link>
		<dc:creator>Contar requests por IP de un access_log de Apache en BASH &#124; tail -f &#124; sysadmin</dc:creator>
		<pubDate>Tue, 10 Feb 2009 23:15:41 +0000</pubDate>
		<guid isPermaLink="false">http://www.tail-f.com.ar/?p=234#comment-55</guid>
		<description>[...] en mi último post publiqué un script muy sencillo en Python para contar la cantidad de requests por IP en un [...]</description>
		<content:encoded><![CDATA[<p>[...] en mi último post publiqué un script muy sencillo en Python para contar la cantidad de requests por IP en un [...]</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: elbarto</title>
		<link>http://www.tail-f.com.ar/programacion/python/script-para-contar-requests-por-ip-de-un-access_log-de-apache.html/comment-page-1#comment-51</link>
		<dc:creator>elbarto</dc:creator>
		<pubDate>Mon, 09 Feb 2009 14:46:01 +0000</pubDate>
		<guid isPermaLink="false">http://www.tail-f.com.ar/?p=234#comment-51</guid>
		<description>Habría que probarlo, pero creo que no sería igual de óptimo en términos de performance. Porque creo que eso lo podrías hacer de dos formas, hacer un script con la misma lógica que el mío (recorriendo cada línea y aplicando la regexp a la línea, e ir sumando), o aplicando una regexp a todo el log con la cual extraigas las IPs y luego contarlas.
En este segundo caso el procedimiento implicaría lo siguiente:
- Compilar la regexp
- Leer todo el log y almacenarlo en una variable
- Aplicar la regexp y obtener un array con todas las IPs
- Recorrer el array para contar la cantidad de ocurrencias de cada IP distinta
- Mostrar los resultados

En los dos casos el hecho de compilar la regexp te agrega un overhead de procesador que yo evito asumiendo que sí o sí la primer palabra de cada línea es la IP. En el segundo caso además agregás el hecho de tener una variable enorme con todo el contenido del archivo en memoria (si el archivo es muy grande puede ser problemático), lo cual yo evito sobreescribiendo el buffer donde voy almacenando cada línea, en cada loop del while. A eso se sumaría después otro array bastante grande con todas las IPs matcheadas.Y luego se agrega el paso de recorrer el array para encontrar IPs repetidas, el cual yo evito al hacerlo mientras voy leyendo el archivo.</description>
		<content:encoded><![CDATA[<p>Habría que probarlo, pero creo que no sería igual de óptimo en términos de performance. Porque creo que eso lo podrías hacer de dos formas, hacer un script con la misma lógica que el mío (recorriendo cada línea y aplicando la regexp a la línea, e ir sumando), o aplicando una regexp a todo el log con la cual extraigas las IPs y luego contarlas.<br />
En este segundo caso el procedimiento implicaría lo siguiente:<br />
- Compilar la regexp<br />
- Leer todo el log y almacenarlo en una variable<br />
- Aplicar la regexp y obtener un array con todas las IPs<br />
- Recorrer el array para contar la cantidad de ocurrencias de cada IP distinta<br />
- Mostrar los resultados</p>
<p>En los dos casos el hecho de compilar la regexp te agrega un overhead de procesador que yo evito asumiendo que sí o sí la primer palabra de cada línea es la IP. En el segundo caso además agregás el hecho de tener una variable enorme con todo el contenido del archivo en memoria (si el archivo es muy grande puede ser problemático), lo cual yo evito sobreescribiendo el buffer donde voy almacenando cada línea, en cada loop del while. A eso se sumaría después otro array bastante grande con todas las IPs matcheadas.Y luego se agrega el paso de recorrer el array para encontrar IPs repetidas, el cual yo evito al hacerlo mientras voy leyendo el archivo.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: Fran</title>
		<link>http://www.tail-f.com.ar/programacion/python/script-para-contar-requests-por-ip-de-un-access_log-de-apache.html/comment-page-1#comment-50</link>
		<dc:creator>Fran</dc:creator>
		<pubDate>Mon, 09 Feb 2009 14:36:12 +0000</pubDate>
		<guid isPermaLink="false">http://www.tail-f.com.ar/?p=234#comment-50</guid>
		<description>No es mas facil matchear las ips con una regexp y despues contarlas?:p</description>
		<content:encoded><![CDATA[<p>No es mas facil matchear las ips con una regexp y despues contarlas?:p</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: elbarto</title>
		<link>http://www.tail-f.com.ar/programacion/python/script-para-contar-requests-por-ip-de-un-access_log-de-apache.html/comment-page-1#comment-49</link>
		<dc:creator>elbarto</dc:creator>
		<pubDate>Mon, 09 Feb 2009 13:09:04 +0000</pubDate>
		<guid isPermaLink="false">http://www.tail-f.com.ar/?p=234#comment-49</guid>
		<description>Por cierto, el script está pensado para contar la cantidad de requests por IP de un access_log de Apache, pero en realidad es bastante más genérico que eso. Lo que hace es tomar la primer palabra (primer conjunto de caracteres sin espacios) de cada línea del archivo e ir sumando la cantidad de ocurrencias de cada palabra nueva en un diccionario. Por lo tanto se puede usar para cualquier otro fin similar.</description>
		<content:encoded><![CDATA[<p>Por cierto, el script está pensado para contar la cantidad de requests por IP de un access_log de Apache, pero en realidad es bastante más genérico que eso. Lo que hace es tomar la primer palabra (primer conjunto de caracteres sin espacios) de cada línea del archivo e ir sumando la cantidad de ocurrencias de cada palabra nueva en un diccionario. Por lo tanto se puede usar para cualquier otro fin similar.</p>
]]></content:encoded>
	</item>
</channel>
</rss>

