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.138 ]

Blog: https://mestrefabio.com

 


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

Google Authenticator no terminal Linux

SED - salvar resultados em novo arquivo

Nginx - Como redirecionar seu domínio para o www

Resolvendo problema de renderização de fontes no Firefox [Debian]

Como suspender/hibernar o computador via linha de comando

Leitura recomendada

Listando os 5 maiores subdiretórios no GNU/Linux

Pacman colorido no Arch Linux

Aulas Shell Script do zero - Parte 6

Conversão do catálogo de endereço do Thunderbird para usar no Mutt - Script

Dica para uso do echo

  

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