Ajuda com script

1. Ajuda com script

matheus kamphorst
MatheusKamphorst

(usa Debian)

Enviado em 07/06/2010 - 09:14h

Pessoal estou eu aqui novamente pedindo ajuda no meu scrip graças ajuda do pessoal meu awk ja esta funcionando com a variavel so gostaria de saber como poderia fazer para quando ele iniciar o monitoramente caso ele nao encontre logs do usuario ele volte uma mensagem dizendo que o mesmo nao esta conectado
segue abaixo meu script

echo digite nome do usuario a ser monitorado ; read usuario
echo iniciando monitoramento do usuario $usuario
echo para cancelar digite ctlr+c
tail -f /var/log/squid/access.log | awk '/'$usuario/'{print $4" "$7" "$8}'


  


2. Re: Ajuda com script

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 07/06/2010 - 09:26h

Faça com o if:

if [ -x $usuario ]; then
echo "Usuário encontrado"
else
echo "Usuário não encontrado"
fi

Dae vc ajusta da sua maneira...


3. Re: Ajuda com script

matheus kamphorst
MatheusKamphorst

(usa Debian)

Enviado em 07/06/2010 - 10:30h

hoje a tarde no trabalho eu testo.
ele ficara apos o awk?


4. Re: Ajuda com script

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 07/06/2010 - 10:54h

Sim, só q eu tava pensando... pode dar errado. Teste depois e me fala.


5. Re: Ajuda com script

matheus kamphorst
MatheusKamphorst

(usa Debian)

Enviado em 07/06/2010 - 15:14h

nao sei se vou conseguir testar hoje, as coisas estão muito agitadas aqui no trabalho.


6. Re: Ajuda com script

Richard Andrade
richardandrade

(usa Debian)

Enviado em 07/06/2010 - 16:02h

Vai dar errado utilizando o if do amigo acima, por um motivo... o tail -f é monitoração... o script vai parar ali e não irá proceguir. Acho que seu script já está pronto.

ps: Caso mesmo assim você queira isso... você terá que modificar um pouco.

#!/bin/bash
echo digite nome do usuario a ser monitorado ; read USUARIO
LOCAL=`pwd`
if [ -e $LOCAL/log.txt ];then
rm -r $LOCAL/log.txt
else
touch $LOCAL/log.txt
fi
tail -n 150 /var/log/squid/access.log | awk -F " " {'print $3" " $7 " "$8'} | grep $USUARIO > $LOCAL/log.txt
if [ -z $LOCAL/log.txt ]; then
echo Usuario nao conectado.
else
cat $LOCAL/log.txt | more
fi


PS: esse script pega as 150 ultimas linhas do access.log e faz o que você quer.

valeu e abraço


7. Re: Ajuda com script

Renato Carneiro Pacheco
renato_pacheco

(usa Debian)

Enviado em 07/06/2010 - 17:33h

"Suspeitei desde o princípio!" - Chapolin Colorado


8. Re: Ajuda com script

matheus kamphorst
MatheusKamphorst

(usa Debian)

Enviado em 07/06/2010 - 21:24h

desculpa demora....
1º esse script ai vai mostrar so as 150 ultimas linhas ou vai ficar monitorando elas?

2º eu to precizando que o tail -f ...." va salvando em um outro arquivo

3º sabem como fazer para o script, nao para no comando ? ele executar o comando e seguir pro proximo.


9. Re: Ajuda com script

Richard Andrade
richardandrade

(usa Debian)

Enviado em 08/06/2010 - 09:03h

1° Irá listar as últimas 150 linhas,

3° você poderia mandar para background o comando, botar o script para esperar X segundos, logo a pós buscar o PID do processo de monitoração e mata-lo e em seguida verificar se o arquivo de log a ser criado está vazio ou não, caso estiver vazio retorna a mensagem de que ele não está conectado.

valeu e abraço.


10. Re: Ajuda com script

matheus kamphorst
MatheusKamphorst

(usa Debian)

Enviado em 08/06/2010 - 10:50h

vo fazer os teste e posto ainda hoje


11. Re: Ajuda com script

matheus kamphorst
MatheusKamphorst

(usa Debian)

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

Buenas estou de volta.

1º consegui redirecionar a saida do tail -f | awk ...." para um arquivo ficou:
"tail -f /var/log/squid/access.log | awk '/'$usuario'/ {print $8" "$4" "$7 | "tee /tmp/access.log"}'

ainda não consegui elaborar a forma dele dizer que o usuario nao foi encontrado... acho que vai ficar mais facil agora...

vo posta script inteiro (obs estou adptando ele para utilizar dialog)

dialog --infobox "iniciando monitoramente squid" 5 40
sleep 1
usuario=$( dialog --stdout --inputbox 'qual usuario quer monitorar?:' 10 50 )
dialog --infobox "iniciando monitoramento do usuario "$usuario" tecle ctrl+c para cancelar"
sleep 2
clear
tail -f /var/log/squid/access.log | awk '/'$usuario/'{print $4" "$7" "$8 | "tee /tmp/access.log}'
#Agora chega o problema!!!!! preciso que o tail -f fique #rodando eo scrip passe para a proxima linha que é o
dialog --tailbox /tmp/access.log 100 100
#####################################################


estou vou testar o comando exec que um colega de trabalho me aconselhou, nao sei exatamente como funciona mais penso que se por o tail -f em BackGrounde executar o outro script com o tailbox va funcionar neh?



estou indo dormir estava ate agora atraz da solução do redirecionamento da awk...

agora me restao so 2 problemas
1 detectar que o usuario nao esta conectado
2 executar os dois tail ao mesmo tempo


12. Re: Ajuda com script

matheus kamphorst
MatheusKamphorst

(usa Debian)

Enviado em 09/06/2010 - 10:15h

http://yfrog.com/bgerroservidorp

esta ok porem conforme o tail escreve as atualizaçoes no arquivo ele aparece na tela e fica desse jeito meio loco
alguem sabe solucionar isso

vou tentar alguma forma de silenciar o tail -f. se alguem souber uma aguardo resposta.



01 02 03



Patrocínio

Site hospedado pelo provedor RedeHost.
Linux banner

Destaques

Artigos

Dicas

Tópicos

Top 10 do mês

Scripts