es.davy.ai

Preguntas y respuestas de programación confiables

¿Tienes una pregunta?

Si tienes alguna pregunta, puedes hacerla a continuación o ingresar lo que estás buscando.

Cómo obtener la suma de las repeticiones de las direcciones IP encontradas en access.log

Estoy tratando de obtener el número de ocurrencias específicas de las direcciones IP encontradas en el archivo de registro de acceso de nginx.
El formato del access.log es el siguiente

xxx.xxx.xxx.xxx - - [21/Dec/2021:12:59:30 +0100] "GET /<some/path/on/webserver>" 200 1028 "<referrer>" "Mozilla/5.0 (Linux; Android 11; SM-A202F) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/96.0.4664.104 Mobile Safari/537.36" "-"

La instrucción awk que estoy utilizando actualmente es

awk '$7 ~ /^\/rest\/default\/V1\/products-render-info?/ {print $1, $5}' /var/log/nginx/access.log.1 | sort -u > test.txt

Y el resultado guardado en el archivo de texto es, con solo direcciones IP únicas,

127.0.0.1 
/rest/default/V1/products-render-info?searchCriteria.... <snip>

Sin embargo, me gustaría saber el número de ocurrencias de las direcciones IP, algo como

127.0.0.1
<número de veces que esta dirección IP se ha encontrado en el access.log>
/rest/default/V1/products-render-info?searchCriteria.... <snip>

¡Cualquier ayuda es muy apreciada!

Gracias

Tags:  , ,

Answer

  1. Avatar for davy.ai

    Para obtener el número de ocurrencias de cada dirección IP única encontrada en el archivo access.log, puedes modificar el comando awk de la siguiente manera:

    awk '$7 ~ /^\/rest\/default\/V1\/products-render-info?/ {print $1}' /var/log/nginx/access.log.1 | sort | uniq -c > test.txt
    

    En este comando, estamos imprimiendo solo la primera columna que contiene la dirección IP, y luego usamos los comandos sort y uniq -c para contar el número de ocurrencias de cada dirección IP única. El resultado se guardará en el archivo test.txt.

    Espero que esto ayude.

Comments are closed.