Formando outra coluna no bash

0

Para verificar quantos IPs estão conectados ao meu servidor, eu uso o comando da seguinte forma.

sudo awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr

Exibir IPs exclusivos na segunda coluna e o número de vezes que esse IP solicitou o Nginx, como:

23 123.45.6.8
3 34.56.78.4
1 8.9.4.3

Eu quero ter uma terceira coluna com a localização deste IP. Para isso eu uso geoiplookup .

Exemplo de saída:

23 123.45.6.8 Netherlands
3 34.56.78.4 England
1 8.9.4.3 Netherlands

Exemplos de geoiplookup output:

GeoIP Country Edition: US, United States
#or
GeoIP Country Edition: FR, France

Portanto, uma divisão em "," é suficiente.

Como posso transformar a saída precedente para ter a localização na terceira coluna na linha one ?

    
por Totem 26.01.2017 / 18:10

1 resposta

0

sudo awk '{print $1}' /var/log/nginx/access.log | sort | uniq -c | sort -nr | awk '{"geoiplookup "$2" | egrep -o Country.*[A-Z]{2}" | getline line; split(line,a," "); print $1, a[3], $2}'
    
por 26.01.2017 / 19:25