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

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

Re: [shell-script] Ajuda....


From: opa
Subject: Re: [shell-script] Ajuda....
Date: Tue, 27 Apr 2004 16:23:22 -0300 hrN

Oi DM:

Parece que você está começando. Então provavelmente o que deseja 
são soluções. Olhei rapidamente e acredito ter entendido, mais 
ou menos, o que você pretende.

Nao estou muito certo que o arquivo de log como voce o coloca 
seja uma boa opcao. Sem ter visao do resto nao dá para palpitar.

Ficar repetindo coisas fixas "Chegou ..." é péssimo.

O lugar para o log  em /usr/... também me pareceu ruim.

Bem o mais importante é fazer funcionar, depois o resto você irá
sentindo, naturalmente, com o tempo.

Devido à extrema repetitibilidade tomei a liberdade de fazer 
alterações profundas. Fiz rapidamente e podem ter faltado detalhes 
estruturais, mas ainda assim, modestamente, acho que você deve 
abandonar o seu e partir deste, ou de outro melhor que seja postado.


A minha experiência é apenas com o bash, lembre desse detalhe. :)

É só isto aqui:
------
#!/bin/sh

LISTA="CLIENTES CONTRATOS..."

chegou(){
 echo $JA|grep -q ";${1:0:3};"||{
  [ -f CBI_${1:0:3}* ]&&{
   echo " Arquivos de $1 chegaram ">>/usr/rcvry/log/mon_cheg_arq.log
   JA=$JA"${1:0:3};"
};};}

todos(){
 for A in $LISTA;do
  echo $JA|grep -q ";${A:0:3};"||return 1
 done
}

cd /cbi/transfer/download

JA=';'
while ! todos;do
 for A in $LISTA;do chegou $A;done
 echo JA=$JA # so na fase de debug
 sleep 360
done
------

Espero nao ter esquecido nada! :)

Se tiver problemas nao escreva só "nao funcionou". Ajude aqueles que
querem te ajudar, dando tantos detalhes e sintomas quanto possível.

Se houver dúvida como funciona procure "mexer" no script, ver o 
efeito, etc., se ainda assim não resolver, pergunte.

Boa experimentação.


---------------------------------------------------------------------
>From: "digomiranda2003" <address@hidden>
>Date: Mon, 26 Apr 2004 10:33:01 -0000
>
>Amigos, preciso fazer um scrip ler se alguns arquivo chegaram em 
>determinada pasta e através de monitoração no log começar outro 
>passo, mas o script que fiz está dando o seguinte erro:
>../mon_cheg_arq.sh
>Unmatched `.
>alguem pode me dar uma luz por favor..??
>
>#!/usr/bin/csh -fb
>
>cd /cbi/transfer/download
>
>set a=0
>set b=0
>set c=0
>set d=0
>set e=0
>
>
>while (( $a == 0 || $b == 0 || $c == 0 || $d == 0 || $e =
>= 0 ))
>
>arqcli=`ls -l |grep CBI_CLI* | wc -l'
>if (( $arqcli != 0 )) then
>echo " Arquivos de CLIENTES chegaram " 
>>& /usr/rcvry/log/mon_cheg_arq.log
>$a++
>
>arqcontr=`ls -l |grep CBI_CON* | wc -l'
>if (( $arqcontr != 0 ));then
>echo " Arquivos de CONTRATOS chegaram " 
>>>& /usr/rcvry/log/mon_cheg_arq.log
>$b++
>
>arqprest=`ls -l |grep CBI_PRT* | wc -l'
>if (( $arqprest != 0 )) then
>echo " Arquivos de PRESTACOES chegaram " 
>>>& /usr/rcvry/log/mon_cheg_arq.log
>$c++
>
>arqava=`ls -l |grep CBI_AVA* | wc -l'
>if (( $arqava != 0 )) then
>echo " Arquivos de AVALISTAS chegaram " 
>>>& /usr/rcvry/log/mon_cheg_arq.log
>$d++
>
>arqfin=`ls -l |grep CBI_FIN* | wc -l'
>if (( $arqfin != 0 )) then
>echo " Arquivos de FINANCEIRO chegaram " 
>>>& /usr/rcvry/log/mon_cheg_arq.log
>$e++
>
>fi
>
>sleep 360
>
>done





reply via email to

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