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

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

"Ctrl + a" para selecionar tudo no Vim

Automatizando o download de fotos de um determinado site

Reduzindo o tamanho de arquivos PDF

MongoDB - Habilitar autenticação por usuário (Access Control)

Como fazer print() sem quebra de linha em Python

Leitura recomendada

Shell Script nosso de cada - Episódio 2

Script para enviar ip para o email

Usando o cURL para enviar JSON POST DATA

Ativando o NUMLOCK na tty1 quando ligar o PC automaticamente

Ocultando a versão do seu BIND

  

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