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

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [shell-script] Ajuda Iniciante


From: Daniel Fernando Coimbra
Subject: Re: [shell-script] Ajuda Iniciante
Date: Fri, 03 Apr 2009 21:38:24 -0300
User-agent: Thunderbird 2.0.0.18 (X11/20081105)

Caro Standler, acredito que a melhor opção para fazer o que você deseja
seja algo como:

# tail -f -n 0 $LOGFILE | grep $PATTERN | while read LINHA
do
   mail ...
done



Com a opção "-n 0" o tail só vai pegar linhas novas (após você dar o
comando) para monitorar, e com o "while read" você vai poder realizar os
comandos para aquela única linha sem se preocupar em ficar "preso" ao tail.

Standler meir wrote:
> Olá Julio,
>  
> Fiz a alteração que você sugerio, porém não manda os e-mail....
> Por isso tem o if para fazer a checagem e enviar...
>  
> Com relação a ultima linha não tem problema porque esse 
> 
> --- Em sex, 3/4/09, Julio C. Neves <address@hidden> escreveu:
> 
> De: Julio C. Neves <address@hidden>
> Assunto: Re: [shell-script] Ajuda Iniciante
> Para: address@hidden
> Data: Sexta-feira, 3 de Abril de 2009, 10:54
> 
> 
> 
> 
> 
> 
> Fala Standler,
> 
> vc pode tranquilamante trocar:
> 
> *(tail -f /var/log/apache2/ access.log | grep -q "10.1.1.31")
> if [ "$?" = "0" ]; then
> grep -i "10.1.1.31" /var/log/apache2/ access.log | mail -s "teste"
> skfogo@gmail. com <skfogo%40gmail. com>
> *
> por:
> 
> *Achei=$(tail -f /var/log/apache2/ access.log | grep "10.1.1.31") &&
> grep -B2 -A5 "$Achei" /var/log/apache2/ access.log | mail -s "teste"
> skfogo@gmail. com <skfogo%40gmail. com>
> *
> Mas o que eu acho estranho é que se vc está pegando o dado com* tail
> -f, *teoricamente
> esta linha é a última, não existindo as 5 linhas após. Pense nisso, pq
> talvez seja necessário um* sleep *ou algo do gênero.


reply via email to

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