Pego endereços IP no log de acesso e quero descobrir de onde vêm esses endereços IP. Para fazer isso eu uso este script:
cat /var/log/nginx/access.log |awk '{ print $1}'|sort| uniq -c |sort -n -r | awk '{print $2}'
um exemplo de saída é:
1.2.3.4
5.6.7.8
...
Posso passar o resultado nslookup
com o comando pipeline |
, mas o resultado não é de fácil leitura, então tentei usar o host
comando, mas a única saída é uma informação sobre como usar o host
comando.
Como posso usar host
o comando para resolver endereços IP em lote?
Responder1
Você pode usar xargs, ele converte a entrada padrão em argumentos para um comando.
A opção -n limita os argumentos a um (delimitado por nova linha) e chama o host várias vezes para cada um deles, para que você possa fazer:
cat /var/log/nginx/access.log |awk '{ print $1}'|sort| uniq -c |sort -n -r | awk '{print $2}' | xargs -n 1 host