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

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

Re: [shell-script] Shell Script


From: José Maria de Oliveira - Depto. Informática
Subject: Re: [shell-script] Shell Script
Date: Fri, 1 Mar 2002 12:08:05 -0300

Entao mande para address@hidden

[]s,
  ----- Original Message ----- 
  From: Julio Cezar Neves - DISB.O 
  To: address@hidden 
  Sent: Friday, March 01, 2002 11:51 AM
  Subject: [shell-script] Shell Script


  Estou te mandando em PVT. Não mando para a lista toda, pq a última vez que
  fiz isso, teve um monte de colegas que receberam o material e reclamaram por
  que estava no formato .doc (que é o formato que o editor me obriga, *por
  contrato*, a usar), porque em uma lista não se anexa arquivos, ...

  Como não tenho necessidade de agradar a gregos e baianos, e faço isso pelo
  simples prazer de ajudar ao próximo (não sou bíblia, mas estou parecendo:^),
  prefiro mandar para 1000 endereços de e-mail do que mandar para lista.

  Favor não contestar minha opinião pq ela é irrevogável.

  [ ]s,
  Julio

  Obs: Aqueles que estão me enviando e-mail e citam que compraram meu livro,
  mando o "kit" de upgrade para a 3ª edição. (named-pipes + getopts).

  -----Mensagem original-----
  De: Diego Framill [mailto:address@hidden]
  Enviada em: sexta-feira, 1 de março de 2002 11:01
  Para: address@hidden
  Assunto: Re: [shell-script] Shell Script


  ok, manda pra mim tambem! :)
  aparentemente todos querem, entao manda pra lista toda...

  -----Mensagem Original-----
  De: "Walter" <address@hidden>
  Para: <address@hidden>
  Enviada em: sexta-feira, 1 de março de 2002 09:36
  Assunto: Re: [shell-script] Shell Script


  Tambem tenho interesse em uma cópia...

  Valeu

  Walter
  ----- Original Message -----
  From: "Julio Cezar Neves - DISB.O" <address@hidden>
  To: <address@hidden>
  Sent: Thursday, February 28, 2002 11:29 AM
  Subject: RES: [shell-script] Shell Script


  Oi Teresa,

  sem dúvida alguma, o melhor a fazer é utilizar named-pipes ou FIFO. Acabei
  de escrever uma seção sobre o assunto que será incorporada à terceira edição
  do meu livro, que traz como exemplo um caso bastante parecido com o que vc
  precisa. Trata-se da simulação de lock em bancos. Quem quiser me peça que a
  envio em um anexo (.doc). É um texto com várias páginas.

  Não tentei entender a sua lógica por absoluta falta de tempo, porém para
  rapidamente poder te ajudar vou colocar um resumo do que deve ser feito:

  prompt> mkfifo pipe1
  prompt> ls -l pipe1
  prw-r--r--   1 jneves   ssup              0 Jan 24 16:54 pipe1
  # Note que o arquivo pipe1 é do tipo "p"

  No final do prg R.SH coloque o seguinte comando:
  echo "Dispara R1.SH" > pipe1

  Inicie o programa R1.SH da seguinte maneira:

  Disparo=
  while [ "$Disparo" != "Dispara R1.SH" ]
  do
      Disparo=`cat pipe1`
  done

  Pode ficar despreocupada que vc não está criando um loop furioso que exaure
  todos os recursos da máquina. O named-pipe precisa de um processo "falador"
  e de um "ouvidor". Enquanto os 2 não estiverem presentes o que estiver na
  ponta do pipe estará em modo de espera.

  Coloquei o while só porque não conheço a sincronização dos seus processos e
  pode ser que vc use o pipe para diversas mensagens. Coloque na saída do
  R1.SH a seguinte linha:

  echo "Dispara R2.SH" > pipe1

  Inicie o programa R2.SH da seguinte maneira:

  Disparo=
  while [ "$Disparo" != "Dispara R2.SH" ]
  do
      Disparo=`cat pipe1`
  done

  Pronto! Ai está! Limpo e seguro.

  [ ]s,
  Julio Cezar Neves.

  Em tempo: abra 2 seções e faça testes direto no prompt para vc entender
  melhor este mecanismo. É sensacional para sincronização de processos.

  -----Mensagem original-----
  De: saghui [mailto:address@hidden]
  Enviada em: quinta-feira, 28 de fevereiro de 2002 08:23
  Para: address@hidden
  Assunto: [shell-script] Shell Script


  Olá.

  Estou com um problema que espero que um de voces me possa ajudar.
  :)

  Eu tenho uma shell script (R.SH) que chama outras duas (R1.sh e
  R2.sh) para fazer o seguinte:

  A primeira rotina (R1) chama o sql*loader para que este carregue uma
  tabela no oracle.

  A segunda rotina (R2)tem instruções sql para fazer o rebuild dos
  índices da tabela que está a ser carregada na R1.

  É aqui que começa o meu problema ...
  :(

  O unix lança a instrução do rebuild (R2.sh) sem antes ter terminado o
  load dos dados na tabela (R1.sh).

  Claro que depois não faz o rebuild porque a tabela oracle está a ser
  acedida pelo sql*loader....
  :(

  A única solução que eu arranjei foi executar o sql*loader, e depois
  pesquisar se existe algum processo
  sqldr a correr no unix e, enquanto existir, fazer sleeps de 300
  segundos !
  Mas esta solução não me agrada muito ... porque vou ter de correr
  esta rotina várias vezes e, umas vezes 300 segundos é muito
  tempo e, outras vezes, 300 segundos é pouco ...

  O que eu gostaria de saber é se existe algum parâmetro (tipo wait)
  que eu possa colocar na rotina unix de forma
  a que a minha rotina R2.sh só seja executada quando a rotina R1.sh
  termine ...
  Alguém sabe se existe ? Podem ajudar-me ?

  Obrigada!


  Teresa



  As rotinas são estas:

  ### R.SH ###
  DIR_KSH=/net/dev-utdad1/Desenv_UTDAD001/ksh
  . $DIR_KSH/R1.sh
  . $DIR_KSH/R2.sh


  ### R1.sh ###

  DATE=`(date '+%Y%m%d')`
  USER=tmc
  PASSWORD=:)
  BD=sa
  DIR_INP=/net/dev-utdad1/Desenv_UTDAD001/inp/ff_tratados
  FICH_CTL=dwtrmostl.ctl
  FICH_DAT=dwtrmostl.dat
  DIR_LOG=/net/dev-utdad1/Desenv_UTDAD001/logs


  sqlldr $USER/$PASSWORD@$BD control=$DIR_INP/$FICH_CTL data=$DIR_INP/
  $FICH_DAT log=$DIR_LOG/dwtrmostl.log bad=$DIR_LOG/dwtrmostl.bad
  DIRECT=TRUE SILENT=FEEDBACK  SKIP_INDEX_MAINTENANCE=TRUE SKIP=0 &


  i=1
  while [ $i -ne 30 ] ; do

     if [ `ps -futmc | grep "sqldr" | grep -v "grep" | wc -l` != 0 ]
     then

          sleep 300
          i=0
          echo dormi 300
     fi

     i=`expr $i + 1`
  echo $i no while
  done

  #### R2.sh #####
  spool /net/dev-utdad1/Desenv_UTDAD001/logs/DWTrmostlRebuildIndex.log
  set timing on
  ALTER TABLE dw_t_rmo_stl MODIFY PARTITION dw_t_rmo_stl_p1 REBUILD
  UNUSABLE LOCAL INDEXES;
  spool off
  exit



  Sair da lista: address@hidden
  Banco Dados:   http://www.egroups.com/group/shell-script

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


  Sair da lista: address@hidden
  Banco Dados:   http://www.egroups.com/group/shell-script

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




  Sair da lista: address@hidden
  Banco Dados:   http://www.egroups.com/group/shell-script

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





  Sair da lista: address@hidden
  Banco Dados:   http://www.egroups.com/group/shell-script 

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


  Sair da lista: address@hidden
  Banco Dados:   http://www.egroups.com/group/shell-script 

  Seu uso do Yahoo! Grupos é sujeito aos Termos do Serviço Yahoo!. 



[As partes desta mensagem que não continham texto foram removidas]



reply via email to

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