Legal César, Sabes me dizer qual o substituto do comando TAC pro FreeBSD?
--- Em sex, 3/4/09, César Vianna <[email protected]> escreveu: De: César Vianna <[email protected]> Assunto: Re: [shell-script] Ajuda Iniciante Para: [email protected] Data: Sexta-feira, 3 de Abril de 2009, 16:36 Na verdade acho que eu não expliquei direito. A idéia que eu dei é tu inverter a impressão do conteúdo com o tac Depois usar o parâmetro -mNUM do grep para especificar que quer apenas uma ocorrência ( -m1 ) Adiciona essas dicas as demais que já foram passadas. Acredito que ficará assim tac /var/log/apache2/ access.log | grep -m1 -i -A5-B3 "10.1.1.31" 2009/4/3 Standler meir <skf...@yahoo. com.br> > Olá César, > > Obrigado pelo retorno. > > Talves e nao esteja sendo mto claro... > Vou mostrar meu cenário atual.... > > quando gera um erro no código o log do catalina.out gera essa saída: > > 03/04/2009 18:43:47 mpb.utility. EntityManagerHel per log > ERRO: mpb - find all failed > org.hibernate. AssertionFailure : null id in .Componente > entry (don't flush the Session after an exception occurs) > at > org.hibernate. event.def. DefaultFlushEnti tyEventListener. checkId(DefaultF > lushEntityEventL istener.java: 78) > at > org.hibernate. event.def. DefaultFlushEnti tyEventListener. getValues( > DefaultFlushEnti tyEventListener. java:187) > at > org.hibernate. event.def. DefaultFlushEnti tyEventListener. onFlushEntity( > DefaultFlushEnti tyEventListener. java:143) > at > org.hibernate. event.def. AbstractFlushing EventListener. flushEntities( > AbstractFlushing EventListener. java:219) > at > org.hibernate. event.def. AbstractFlushing EventListener. flushEverythingT > oExecutions( AbstractFlushing EventListener. java:99) > at > org.hibernate. event.def. DefaultAutoFlush EventListener. onAutoFlush( > DefaultAutoFlush EventListener. java:58) > at > org.hibernate. impl.SessionImpl .autoFlushIfRequ ired(SessionImpl .java:996) > at org.hibernate. impl.SessionImpl .list(SessionImp l.java:1141) > at org.hibernate. impl.QueryImpl. list(QueryImpl. java:102) > at org.hibernate. ejb.QueryImpl. getResultList( QueryImpl. java:67) > at com.webpack. mpb.dao.obra. ObraDAO.findAll( ObraDAO.java: 309) > at com.webpack. mpb.mb.login. LoginMB.getObras (LoginMB. java:134) > at sun.reflect. NativeMethodAcce ssorImpl. invoke0(Native Method) > at > sun.reflect. NativeMethodAcce ssorImpl. invoke(NativeMet hodAccessorImpl. > java:39) > at > sun.reflect. DelegatingMethod AccessorImpl. invoke(Delegatin gMethodAccessorI > mpl.java: 25) > at java.lang.reflect. Method.invoke( Method.java: 585) > at javax.el.BeanELReso lver.getValue( BeanELResolver. java:62) > at > javax.el.CompositeE LResolver. getValue( CompositeELResol ver.java: 53) > at > org.apache.myfaces. el.unified. resolver. FacesCompositeEL Resolver. > getValue( FacesCompositeEL Resolver. java:140) > at org.apache.el. parser.AstValue. getValue( AstValue. java:118) > at > org.apache.el. ValueExpressionI mpl.getValue( ValueExpressionI mpl.java: 186) > at > com.sun.facelets. el.TagValueExpre ssion.getValue( TagValueExpressi > on.java:71) > at > javax.faces. component. UISelectItems. getValue( UISelectItems. java:130) > at org.apache.myfaces. shared_impl. util.SelectItems Iterator. hasNext > > > Entao para cada erro ele gera uma saida com essa! da maneir que o script > estava ele tava pegando todas as saidas e como essa: > > > 03/04/2009 18:43:47 mpb.utility. EntityManagerHel per log > ERRO: mpb - find all failed > org.hibernate. AssertionFailure : null id in .Componente > > e mandando para o meu e-mail..... > > Só que eu quero que manda so a ultima que representa o erro do momento e > nao as outras. > > fiz o que vc disse assim: > > #!/usr/local/ bin/bash > while true; do > (tail -f /usr/local/apache- tomcat-6. 0.18/logs/ catalina. out | grep > -q "ERRO: mpb") > if [ "$?" = "0" ]; then > echo $? "foi" > > $ cat txt > pri 1 > seg 2 > terc 1 > $ tac txt | grep 1 -m1 "ERRO: mpb" > /usr/local/apache- tomcat-6. 0.18/logs/ catalina. out | mail -s "Erro MPB" > skf...@gmail. com <skfogo%40gmail. com> > terc 1 > fi > done > > > dessa forma ele ta gerando uma saída assim: > > /usr/local/apache- tomcat-6. 0.18/logs/ catalina. out:17/03/ 2009 20:59:05 > org.apache.tomcat. util.digester. SetPropertiesRul e begin > > Enquanto que o desejado e uma saida assim: > > 03/04/2009 18:43:47 mpb.utility. EntityManagerHel per log > ERRO: mpb - find all failed > org.hibernate. AssertionFailure : null id in .Componente > > ou seja a partir do ERRO: mpb ele me pega uma linha acima e uma linha > abaixo. > > > Pow galera mais uma vez obrigado pela atenção de todos.. valeu mesmo! > > Abraço > > --- Em sex, 3/4/09, César Vianna <cesar.vianna@ gmail.com<cesar.vianna% > 40gmail.com> > > escreveu: > > De: César Vianna <cesar.vianna@ gmail.com <cesar.vianna% 40gmail.com> > > Assunto: Re: [shell-script] Ajuda Iniciante > Para: shell-script@ yahoogrupos. com.br <shell-script% 40yahoogrupos. com.br> > Data: Sexta-feira, 3 de Abril de 2009, 14:51 > > Deve ter maneira melhor, mas o parâmetro -m do grep + o tac pode ajudar: > > $ cat txt > pri 1 > seg 2 > terc 1 > > $ tac txt |grep 1 -m1 > terc 1 > > 2009/4/3 Standler meir <skf...@yahoo. com.br> > > > > > desculpa cliquei no enter sem querer.. > > continuando. . > > > > > > 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 script vai ficar > > ouvindo o catalina.out e so vai enviar um e-mail quando houver um erro no > > codigo, o erro tem mais de 15 linhas e checo atraves da string que eu > setar > > no codigo. ex. erro: mpb, assim toda vem que aparecer essa linha no log > ele > > me envia por e-mail. > > > > Assim ta funcionando certinho conforme a dica do Cleóson: (-A -B) > > > > #!/bin/bash > > while true; do > > (tail -f /var/log/apache2/ access.log | grep -q "10.1.1.31") > > if [ "$?" = "0" ]; then > > grep -i -A5-B3 "10.1.1.31" /var/log/apache2/ access.log | mail -s "teste" > > skf...@gmail. com <skfogo%40gmail. com> > > fi > > done > > > > > > Só que agora to com outro problema. > > > > Ele ta buscando todos os erros do log que tem a string erro: mpb > > Como posso fazer para que pegue semente o últmo??? > > > > Abraço, > > > > > > > > > > > > > > > > --- Em sex, 3/4/09, Standler meir <skf...@yahoo. com.br<skfogo% 40yahoo. > com.br>> > > escreveu: > > > > De: Standler meir <skf...@yahoo. com.br <skfogo%40yahoo. com.br>> > > Assunto: Re: [shell-script] Ajuda Iniciante > > Para: shell-script@ yahoogrupos. com.br <shell-script% 40yahoogrupos. > com.br> > > Data: Sexta-feira, 3 de Abril de 2009, 14:01 > > > > > > 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 <julio.neves@ gmail.com<julio. neves% > 40gmail.com> > > > escreveu: > > > > De: Julio C. Neves <julio.neves@ gmail.com <julio.neves% 40gmail.com> > > > Assunto: Re: [shell-script] Ajuda Iniciante > > Para: shell-script@ yahoogrupos. com.br <shell-script% 40yahoogrupos. > com.br> > > 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" > > skf...@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" > > skf...@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. > > -- > > Abração, > > Julio > > *Cursos de Shell e Zenity nos finais de semana: > > - Em SP ligue (11) 2125-4747; > > - Em DF ligue (61) 3223-3000; > > - No RJ brevemente; > > - Turmas fechadas em outras cidades ligue (21) 8112-9988 > > * > > > > 2009/4/3 Standler meir <skf...@yahoo. com.br> > > > > > 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" > > > skf...@gmail. com <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 <ronaldo_tgz@ yahoo.com. br<ronaldo_tgz% > > 40yahoo.com. br>> > > > escreveu: > > > > > > De: jimmy <ronaldo_tgz@ yahoo.com. br <ronaldo_tgz% 40yahoo.com. br>> > > > Assunto: Re: [shell-script] Ajuda Iniciante > > > Para: shell-script@ yahoogrupos. com.br <shell-script% 40yahoogrupos. > > com.br> > > > 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.maisbusca dos.yahoo. com > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > > > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > Veja quais são os assuntos do momento no Yahoo! + Buscados: Top 10 - > > Celebridades - Música - Esportes > > > > Veja quais são os assuntos do momento no Yahoo! +Buscados > > http://br.maisbusca dos.yahoo. com > > > > [As partes desta mensagem que não continham texto foram removidas] > > > > > > > > -- > César Vianna > ------------ ------- > Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às > unidades; os agenciamentos móveis aos sistemas. > Gilles Deleuze & Felix Guattari > > [As partes desta mensagem que não continham texto foram removidas] > > Veja quais são os assuntos do momento no Yahoo! +Buscados > http://br.maisbusca dos.yahoo. com > > [As partes desta mensagem que não continham texto foram removidas] > > > -- César Vianna ------------ ------- Prefira o que é positivo e múltiplo; a diferença à uniformidade; o fluxo às unidades; os agenciamentos móveis aos sistemas. Gilles Deleuze & Felix Guattari [As partes desta mensagem que não continham texto foram removidas] 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]
