Registro de acesso Uniq -c e Nginx

uniq -ccontará o único de linhas. Exemplo:

$ cat tes.txt
A

A

B


$ cat tes
.txt | uniq -c
2 A
1 B

Seria muito útil quando estamos lidando com “linhas diferentes, mas queremos ver o número de informações parciais iguais agrupadas”. Por exemplo, queremos contar a solicitação por minuto do nginx access.log. Sabemos que o registro de acesso nginx padrão é assim (sua configuração pode variar):

127.0.0.1 - - [13/Feb/2015:21:16:29 -0500] "GET /install.php HTTP/1.1" 502 583 "-" "Mozilla/5.0 (Windows NT 6.1; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/40.0.2214.111 Safari/537.36"

Então simplesmente:

$ tail -9000 access.log | grep '" 200 ' | cut -d: -f2,3 | uniq -c
19 18:02
29 18:03
43 18:06
32 18:07
15 18:08
29 18:09

para obter solicitações por minuto de OKs nas últimas 9.000 ocorrências.

(Leitura Adicional)