Contar e ordenar a quantidade de ocorrências de cada linha em um arquivo

Publicado por Fábio Berbert de Paula em 26/09/2019

[ Hits: 6.513 ]

Blog: https://fabio.automatizando.dev

 


Contar e ordenar a quantidade de ocorrências de cada linha em um arquivo



Problema

Eu precisava levantar quais eram os IPs que mais estavam acessando meu servidor web e como fonte de dados usei o arquivo access.log do NGinx.

Solução

Uma linha de log do NGinx tem o seguinte formato:

201.xx.157.10 - - [24/Sep/2019:12:48:59 -0300] "GET /imagens/banners/udemy-cert.png HTTP/1.1" 200 26546 ".../artigo/Linux-no-Pendrive-Definitivamente-configuravel-e-persistente?pagina=2" "Mozilla/5.0 (X11; Linux x86_64; rv:68.0) Gecko/20100101 Firefox/68.0"

O dado que eu preciso é o primeiro campo, o IP do usuário. Então vamos criar um segundo arquivo de log com apenas o primeiro campo de cada entrada:

cat access.log | cut -d ' ' -f 1 > ip_log.txt

Foi criado um arquivo chamado ip_log.txt com o seguinte formato:

18.184.94.52
54.83.152.140
52.58.160.43
3.86.142.166
35.158.131.185
46.229.168.145
18.185.28.42
3.120.174.144
3.123.35.240

Quero fazer o levantamento de quantas vezes cada IP acessou o site neste dia. Para isso vamos usar o comando sort combinado com uniq:

sort ip_log.txt | uniq -c | sort -bnr

A saída será algo como:

   9220 23.100.232.233
   2671 18.231.162.74
   2668 18.229.142.235
   2223 18.228.188.56
   2178 52.67.166.246


Até a próxima!

Outras dicas deste autor

Como instalar última versão Node.js via repositório no Ubuntu, Debian e derivados

Ferramentas CASE para Linux

Como remover senhas de arquivos PDF por linha de comando

Catálogo de efeitos de texto para Gimp

Como fazer print() sem quebra de linha em Python

Leitura recomendada

Conhecendo o printf

Resolvendo problema com scripts que estão rodando no crontab

XFCE4 + Gedit + Firefox no Ubuntu Server

Sintetizador de Voz Off-Line Masculino e Feminino

Shell script - Variáveis especiais

  

Comentários

Nenhum comentário foi encontrado.



Contribuir com comentário




Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts