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] 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]> escreveu: De: jimmy <[email protected]> Assunto: Re: [shell-script] Ajuda Iniciante Para: [email protected] Data: Quinta-feira, 2 de Abril de 2009, 17:58 On Thu, Apr 02, 2009 at 11:14:56AM -0700, Standler meir wrote: > Se eu fizer assim ele manda o e-mail mas ai não está monitorando: > > #!/bin/bash > > tail -5 /var/log/apache2/ access.log | grep "10.1.1.31" | mail -s "teste" > skf...@gmail. com > > Alguma sugestão? tail -5 pega apenas as 5 últimas linhas do arquivo ao invés de "monitorar" a inserção de novas linhas, creio que sua necessidade exige algo que funcione como um daemon minha sugestão seria: tail -f /var/log/apache2/ access.log | awk '/10\.1\.1\. 31/{system( "mail -s \"teste\" skf...@gmail. com")}' -- "Não manejo bem as palavras Mas manipulo bem as strings." ------------ --------- --------- Veja quais são os assuntos do momento no Yahoo! +Buscados http://br.maisbuscados.yahoo.com [As partes desta mensagem que não continham texto foram removidas]
