Pular para o conteúdo

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

Dica publicada em Shell Script / Introdução
Fábio Berbert de Paula fabio
Hits: 7.588 Categoria: Shell Script Subcategoria: Introdução
  • Indicar
  • Impressora
  • Denunciar

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!

Viva o Linux no Twitter!

Como evitar que o CSS do teu site fique armazenado em cache

Instalar MongoDB 4.4 no Debian 10 Buster

Integrar Área de Transferência do Vim com Ambiente Gráfico

cointop - monitore a cotação de criptomoedas via terminal

Utilizando o vim

Automatização da instalação do plugin JAVA (Mozilla)

Shell script no logon do openSUSE 11.3 para definir profile com configurações do wine e atalhos

Onde está a linha que preciso editar? [Resolvido]

Como somar todos os números contidos num arquivo texto

Nenhum comentário foi encontrado.

Contribuir com comentário

Entre na sua conta para comentar.