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: 7.391 ]

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

Comando find: expressões regulares e exclusão de diretórios

Apache2 - Forçando redirecionamento do site para o www

Git pull: "commit your changes or stash them before you merge" [Resolvido]

Navegação fácil no Vim - encontrar próximo e anterior

Configurando e sincronizando com um servidor de data/hora

Leitura recomendada

Ativando o NUMLOCK na tty1 quando ligar o PC automaticamente

Acessando mais que 9 parâmetros em shell script

Verificar se site está online via linha de comando

Venha Conhecer o Yad

Alterar a cor que os arquivos são listados no terminal

  

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