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