Olá!
Para pegar as linas antes e depois, no grep você usa os parâmetros -A
(after) e -B (before).Mais ou menos assim:
grep -i -A5 -B2 "10.1.1.31" /var/log/apache2/access.log | mail -s "teste"
Acho que é isso mas não testei, dá uma olhada.
[]'s
Cléoson
http://farinhadigital.blogspot.com/
2009/4/3 Standler meir <[email protected]>
> Olá Jimmy,
>
> Muito obrigado pela contribuição, mas também não resolveu porque não envia
> ose-mail´s.
>
> Andei pesquisando e da forma que estou fazendo não tem como mesmo, porque
> o tail não para de rodar, a menos que seja cancelado. até lá, ele vai ficar
> rodando, e não vai gerar o log.
>
> Ai Professor Julio, como sempre com foco e disciplina e com suas dicas
> avancei um pouco mais meu script.
>
>
> #!/bin/bash
> while true; do
> (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"
> [email protected] <skfogo%40gmail.com>
> fi
> done
>
> Bom galera acho que nem preciso explicar o script né? afinal aqui só tem
> fera e eu estou só engatinhando.
> Também sei que esta não é a maneira mais elegante para resolver meu
> problema, mas está resolvendo parcialmente.
>
> Agora galera o que preciso é fazer de uma forma que eu pegue somente 5
> linhas abaixo e duas linhas acima, alguém pode me dar uma ajuda para fazer
> uma filtragem legal?
>
> Mais uma vez grato pela ajuda de todos.
>
> Abraço
>
>
>
> --- Em qui, 2/4/09, jimmy
> <[email protected]<ronaldo_tgz%40yahoo.com.br>>
> escreveu:
> __,_._,__
>
[As partes desta mensagem que não continham texto foram removidas]