shell-script-pt
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

RES: _[shell-script]_Redirecionar_saída_padrão_de_erro_para_entrada_de_s


From: Julio Cezar Neves - DATAPREVRJ
Subject: RES: _[shell-script]_Redirecionar_saída_padrão_de_erro_para_entrada_de_script
Date: Thu, 21 Nov 2002 16:50:46 -0300

Reinaldo,
acho shell o > barato! No prompt faça o seguinte:

Prompt> mkfifo fifo1
Prompt> ls -l fif*
prw-r--r--   1 jneves   ssup              0 Nov 21 16:41 fifo1

Como vc pode ver pelo tipo de arquivo (p) vc acabou de criar um "named
pipe", que serve para fazer o "tunneling" que o "grande Rodolfo" falou.
Desta forma, redirecione a saída de erro do seu programa cobol (argh!) para
fifo1:

Prompt> cobrun programa 2> fifo1

coloque todo o seu script.sh dentro de um loop de while da seguinte maneira:

while true
do
    Erro=`cat pipe1`
    ...
    conteúdo de script.sh usando a saída de erro que esta dentro da variável
$Erro
    ...
done

desta forma seu script não estaria onerando a máquina já que ficaria em
estado de espera, (waiting) sendo imediatamente ativado toda vez que seu
programa em Cobol der um erro.

[ ]s,
Julio Cezar Neves
-Eu Apoio o Software Livre-
-I Support Free Software-
* +55 21 2528-7070  /  9853-4044
*address@hidden


> -----Mensagem original-----
> De: Rodolfo Villanova
> [mailto:address@hidden]
> Enviada em: quarta-feira, 20 de novembro de 2002 15:56
> Para: address@hidden
> Assunto: RE:
> _[shell-script]_Redirecionar_saída_padrão_de_erro_para_entrada
> _de_script
> 
> 
> Reinaldo,
> 
> Eu não tenho doutorado em shell-script, mas até onde vai o 
> meu conhecimento, se tu
> direcionar a saida de erros de execução de um processo, da 
> forma que esboçaste:
> 
> cobrun programa 2> script.sh
> 
> Sempre as mensagens de erro irão sobrescrever o arquivo script.sh.
> A idéia de disparar o script somente quando ocorrer o 
> problema é boa, mas no caso
> mencionado a lógica do *n?x é despejar a saída dentro do 
> arquivo script.sh, e não fazer um
> "tunneling" da saída de erros para ser aproveitado pelo script.sh.
> 
> O problema é interessante!
> 
> É possível aproveitar um "trap" para realizá-lo?
> 
> Ofereço a palavra aos mestres da lista (Julio Cesar Neves e 
> José Augusto Nieviadonski).
> 
> 
> Rodolfo Villanova
> 
> > -----Original Message-----
> > From: Reinaldo Souza [mailto:address@hidden]
> > Sent: Wednesday, November 20, 2002 1:34 PM
> > To: address@hidden
> > Subject:
> > 
> RE:_[shell-script]_Redirecionar_saída_padrão_de_erro_para_entr
> ada_de_scr
> > ipt
> >
> >
> > Olá Rodolfo,
> >
> > > Creio que o que desejas é direcionar a saída de
> > > erros para um arquivo à parte.
> > > Assim, altere a 3a. linha do teu script para:
> > >
> > > cat arquivo_qqer > /tmp/log.$$ 2> /tmp/erros.log
> > >
> > > E para depurar os erros, passe o nome do log de
> > > erros como parametro para o script
> > > depurador:
> > >
> > > script-depurador /tmp/erros.log
> > >
> > > >
> > > > Agradeço desde já.
> > >
> > > Não tem de quê. Estamos aí pra trocar figurinhas!
> > >
> > > >
> > > > Reinaldo Souza
> > > >
> > >
> >
> > Não é exatamente isso. O problema é que tem um
> > ambiente com uma aplicação cobol que está dando muitos
> > problemas de corrupção de arquivos. A Software House
> > diz que é problema de rede e quem dá suporte à rede
> > diz que é o sistema.
> >
> > Acontece que o runtime do cobol gera menssagens de
> > erros fatais e aborta a execução do sistema, sem choro
> > nem vela. Então com
> > # cobrun programa 2> log.erro
> > eu consigo guardar estas menssagens, mas não sei qual
> > máquina originou o erro e nem quando. A idéia seria a
> > seguinte:
> > # cobrun programa 2> script.sh
> > Em script.sh eu pego a entrada padrão (que seria a
> > saída padrão de erro do cobrun), acrescento as
> > informações que preciso e gravo no log. Assim, o
> > script só seria disparado se houvesse erro. Eu tenho
> > outra solução que seria o script monitorar um arquivo,
> > mas isto representa sobrecarga de processamento,
> > indesejável no caso. Do jeito que está:
> > # cobrun programa 2> script.sh
> > a saída padrão de erro está sendo gravada no arquivo
> > script.sh.
> >
> > Acho que agora fui mais claro.
> >
> > Grato,
> >
> >
> > Reinaldo Souza
> 
> 
> 
> 
> ---------------------------------------------------------------------
> Esta lista não admite a abordagem de outras liguagens de 
> programação, como perl, C etc. Quem insistir em não seguir 
> esta regra será moderado sem prévio aviso.
> ---------------------------------------------------------------------
> Sair da lista: address@hidden
> ---------------------------------------------------------------------
> Esta lista é moderada de acordo com o previsto em 
http://www.listasdiscussao.cjb.net
---------------------------------------------------------------------
 

Seu uso do Yahoo! Grupos é sujeito às regras descritas em:
http://br.yahoo.com/info/utos.html 



reply via email to

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