variavel com awk [RESOLVIDO]

1. variavel com awk [RESOLVIDO]

matheus kamphorst
MatheusKamphorst

(usa Debian)

Enviado em 05/06/2010 - 08:21h

variavel e awk

estou tentando criar um scrip de monitoramento de squid em tempo real por usuario, eu sei o comando que funciona mas ele nao esta funcionando com a variavel sendo que ela esta setada certa
no scrip comando esta
tail -f /var/log/squid/access.log | awk ' /$usuario/ {print "AÇAO="$4" ""URL="$7"}

este comando funciona se no lugar da variavel eu por nome do usuario que quero monitorar. porem quando utilizo a variavel nao funciona, se alguem puder me ajudar.


para monitorar todos usuarios usso | awk '{print $4" "$7" "$8}'



  


2. Re: variavel com awk [RESOLVIDO]

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 05/06/2010 - 08:33h

Teste assim:

tail -f /var/log/squid/access.log | awk '$usuario {print "AÇAO="$4" ""URL="$7"}'


3. Re: variavel com awk [RESOLVIDO]

matheus kamphorst
MatheusKamphorst

(usa Debian)

Enviado em 05/06/2010 - 16:24h

nao deu.


4. Re: variavel com awk [RESOLVIDO]

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 05/06/2010 - 17:16h

Vc tá declarando a variável antes d executar o comando? Como vc tá declarando? Explique ae...


5. Re: variavel com awk [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 05/06/2010 - 22:17h

Tente com o parâmetro -v :

tail -f /var/log/squid/access.log | awk -v user=$usuario ' /$user/ {print "AÇAO="$4" ""URL="$7"}


6. Re: variavel com awk [RESOLVIDO]

matheus kamphorst
MatheusKamphorst

(usa Debian)

Enviado em 05/06/2010 - 23:32h

vo pos o scrip inteiro o parametro -v tambem nao funcionou.

echo Digite nome do usuario que quer monitorar ; read usuario
echo iniciando monitoramento do usuario $usuario
echo para cancelar tecle ctrl+c
tail -f /var/log/squid/access.log | awk ......
ja tentei parametro -v e o "'"variavel"'"
de algumas formas ele apresenta erro e de outros ele simplesmente ignora a variavel e monitora todos usuarios


7. Re: variavel com awk [RESOLVIDO]

matheus kamphorst
MatheusKamphorst

(usa Debian)

Enviado em 06/06/2010 - 00:09h

o seguinte comando sem estar no script funciona
tail -f /var/log/squid/access.log | awk '/nomedousuario/ {print $4" "$7" "8}'

ele retorna so a 4,7 e 8 coluna dos acessos em tempo real do usuario.
no scrip so nao estou conseguindo por a variavel no lugar do nome do usuario


8. Re: variavel com awk [RESOLVIDO]

Perfil removido
removido

(usa Nenhuma)

Enviado em 06/06/2010 - 17:58h

Coloque aspas na declaração de variável:

tail -f /var/log/squid/access.log | awk -v user="$usuario" '/$user/ { print "$4 $7 $8" }'

Ou tente uma gambiarra:

tail -f /var/log/squid/access.log | awk '/'$usuario'/ {print "$4 $7 $8"}'



9. Re: variavel com awk [RESOLVIDO]

matheus kamphorst
MatheusKamphorst

(usa Debian)

Enviado em 07/06/2010 - 08:34h

Vlw cara a gambiarra sempre funciona!






Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts