shell-script-pt
[Top][All Lists]
Advanced

[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



reply via email to

[Prev in Thread] Current Thread [Next in Thread]