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 11:46:08 -0700 (PDT)

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.EntityManagerHelper 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.DefaultFlushEntityEventListener.checkId(DefaultFlushEntityEventListener.java:78)
        at 
org.hibernate.event.def.DefaultFlushEntityEventListener.getValues(DefaultFlushEntityEventListener.java:187)
        at 
org.hibernate.event.def.DefaultFlushEntityEventListener.onFlushEntity(DefaultFlushEntityEventListener.java:143)
        at 
org.hibernate.event.def.AbstractFlushingEventListener.flushEntities(AbstractFlushingEventListener.java:219)
        at 
org.hibernate.event.def.AbstractFlushingEventListener.flushEverythingToExecutions(AbstractFlushingEventListener.java:99)
        at 
org.hibernate.event.def.DefaultAutoFlushEventListener.onAutoFlush(DefaultAutoFlushEventListener.java:58)
        at 
org.hibernate.impl.SessionImpl.autoFlushIfRequired(SessionImpl.java:996)
        at org.hibernate.impl.SessionImpl.list(SessionImpl.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.NativeMethodAccessorImpl.invoke0(Native Method)
        at 
sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
        at 
sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
        at java.lang.reflect.Method.invoke(Method.java:585)
        at javax.el.BeanELResolver.getValue(BeanELResolver.java:62)
        at javax.el.CompositeELResolver.getValue(CompositeELResolver.java:53)
        at 
org.apache.myfaces.el.unified.resolver.FacesCompositeELResolver.getValue(FacesCompositeELResolver.java:140)
        at org.apache.el.parser.AstValue.getValue(AstValue.java:118)
        at 
org.apache.el.ValueExpressionImpl.getValue(ValueExpressionImpl.java:186)
        at 
com.sun.facelets.el.TagValueExpression.getValue(TagValueExpression.java:71)
        at javax.faces.component.UISelectItems.getValue(UISelectItems.java:130)
        at org.apache.myfaces.shared_impl.util.SelectItemsIterator.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.EntityManagerHelper 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" 
address@hidden
        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.SetPropertiesRule begin
 
Enquanto que o desejado e uma saida assim:
 
03/04/2009 18:43:47 mpb.utility.EntityManagerHelper 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 <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, 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.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]