[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
OFF TOPIC Substituir texto no log do squid
From: |
Cristiano Ferrari |
Subject: |
OFF TOPIC Substituir texto no log do squid |
Date: |
Fri, 07 Dec 2007 21:36:13 -0000 |
User-agent: |
eGroups-EW/0.82 |
--- Em address@hidden, "Tiago Barcellos Peczenyj"
<tiago.peczenyj@...> escreveu
>
> Cristiano,
>
> vc quer fazer algo como
>
> 1) procura quem não está autenticado
> 2) procura quem está usando esse ip
> 3) substitui o - pelo nome
>
> se for isso, creio que existem algumas formas de faze-lo, bastaria
> saber como vc mapeia esses usuarios para os ips.
>
>
> ex:
>
> (...)
>
> ~> awk 'FILENAME == "user.ip" { m[$1]=$2 }
> FILENAME == "squid.log" {
> $(NF-1)=$(NF-1) m[$3] ; print
> }' user.ip squid.log
>
> 1196848451.093 32 192.168.0.39 TCP_DENIED/407 1921 GET
> http://maps.google.com/maps? - NONE/-FULANO text/html
Pessoal, boa noite.
Agradeci ao Tiago e ao Flávio em PVT antes mesmo de testar as
sugestões, mas a proposta do Tiago tinha uma divergência em relação ao
que preciso, um detalhe que não compromete a lógica da solução.
O comando que ele passou acima, acrescenta o nome do usuário ao
penúltimo campo da lista. Deste modo, o log ficaria errado, pois a
identificação do usuário é 8.º camnpo (o hífen entre o "/maps?" e o
"NONE/-"). Então o que preciso é substituir este 8.º campo pelo nome
do usuário.
Mesmo sem conhecer bulhufas de awk consegui entender (com a ajuda de
alguns tutos e o man page) que é o $(NF-1)=$(NF-1) m[$3] quem faz
isso. Então, fiz corrigi para:
awk 'FILENAME == "usertab" { m[$1]=$2 } FILENAME == "access.log" {
$(NF-2)="" m[$3] ; print }' usertab access.log
Deu perfeitamente certo e o problema foi resolvido.
Respondo apenas para que fique registrada a solução correta, pois a
listá é aberta e pode ajudar algum outro newbie como eu no futuro.
Quando vi o texto do comando não entendi nada. Passei a última hora e
meia quebrando o coco para compreender a lógica e mesmo depois de
corrigí-lo, nem tudo estava claro para mim (os vetores me
confundiram). Confesso que cheguei a começar um e-mail para a lista
pedindo para que alguém explicasse em detalhes, mas ao escrevê-lo
consegui entender totalmente a lógica e este post, bem como o do
Flávio, me ajudarão muito no aprendizado do awk + sed, que tanto me
apavorava.
Desculpem-me o excesso por uma coisa tão simples. Concordo que
respostas de agradecimento não são bem vindas na lista e espero não
ser mal recebido, mas além de dar o feedback sobre o ajuste na
sugestão do Tiago, quis compartilhar minha satisfação.
Boa noite e bom fim de semana a todos.
Cristiano Ferrari