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: Standler meir
Subject: Re: [shell-script] Ajuda Iniciante
Date: Fri, 3 Apr 2009 13:18:47 -0700 (PDT)

Legal César,
 
Sabes me dizer qual o substituto do comando TAC pro FreeBSD?

--- Em sex, 3/4/09, César Vianna <address@hidden> escreveu:

De: César Vianna <address@hidden>
Assunto: Re: [shell-script] Ajuda Iniciante
Para: address@hidden
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 <skfogo@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"
> skfogo@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 <skfogo@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"
> > skfogo@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 <skfogo@yahoo. com.br<skfogo% 40yahoo.
> com.br>>
> > escreveu:
> >
> > De: Standler meir <skfogo@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"
> > 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.
> > --
> > 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 <skfogo@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"
> > > skfogo@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"
> > > skfogo@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\" skfogo@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]



reply via email to

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