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

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

Re: [OT] CRON x SHELL


From: Marcus Vinicius P Coimbra
Subject: Re: [OT] CRON x SHELL
Date: Mon, 22 May 2006 19:36:43 -0300
User-agent: Thunderbird 1.5.0.2 (Windows/20060308)

Mais um detalhe:

eis minha linha do cron:

27 19 * * *  /bin/bash /usr/local/bin/pntmysqlloader.sh >> 
/var/log/planetun.log 2>&1

e executando o script na "mão", roda que é uma beleza

msp01:/home/vinicius # /usr/local/bin/pntmysqlloader.sh

[]s

Vinny


Marcus Vinicius P Coimbra wrote:
> Meus amigos,
>
> Desculpem pelo OT, mas alguém poderia me ajudar a descobrir por quê 
> meu shell não esta executando "partes" dele através do cron? Dei uma 
> olhada no histórico, mas nada me ajudou a solucionar o problema....
>
> O script é executado até o primeiro laço "for", depois disso pára 
> executando somente até o primeiro "truncate" no mysql.... :(
>
> Olho só minha log:
>
> +========================================+
> Iniciando carga de pecas de fornecedores
> Data: Mon May 22 19:25:01 2006
> +========================================+
>
> Iniciando a carga...aguarde...
> Inicio: Mon May 22 19:25:01 2006
>
> movendo arquivo 003200605011.csv para processados
>
> cd carga
> truncate do mysql
> Termino: Mon May 22 19:25:15 2006
>
> Não sei mais o que mudar.....alguém pode me ajudar?
>
> []s
>
> Vinny
>
> SCRIPT:
>
>
> #!/bin/bash
> #
> # Programa de carga de pecas das montadoras
> # Marcus Vinicius <address@hidden>
> # Data: 2006-01-11 16:10
> #
> #
> # OBSERVACOES:
> # 1) Layout dos arquivos (arquivos posicionais):
> #    
> #    POSICAO CAMPO
> #       1-25 partnumber (codigopeca)
> #      26-60 descricao (descricao)
> #      61-61 tipopeca (genuina=1 ; original=2 ; generica=3)
> #      62-64 montadora (codigo da montadora)
> #      65-76 valor (precobruto para tipopeca=(1); precoliquido para 
> tipopeca=(2,3)
> #      77-79 grupo de desconto (letras ou numeros de desconto)
> #
> # 2) Durante a carga, ignorar [::SPACE::] e [/] gerando um codigo
> #    conforme conversa telefonica com Henrique em 2005-01-11 as 16:30
> #
> # Programas
> MYSQL=/usr/bin/mysql
> CAT=/bin/cat
> DOS2UNIX=/usr/bin/dos2unix
> SED=/bin/sed
> CUT=/usr/bin/cut
> PASTE=/usr/bin/paste
> AWK=/usr/bin/awk
> LYNX=/usr/bin/lynx
> WC=/usr/bin/wc
> MV=/bin/mv
> RM=/bin/rm
> LS=/bin/ls
> #
> echo -e "+========================================+"
> echo -e "Iniciando carga de pecas de fornecedores"
> echo -e "Data: `date +%c`"
> echo -e "+========================================+"
> echo -e ""
> echo -e "Iniciando a carga...aguarde..."
> echo -e "Inicio: `date +%c`"
> cd /mspsites/planetun/www/carga/
> echo -e "cd carga"
> $MYSQL -uplanetun -pxxxxxxxxxx -e "truncate table importapeca ;" pntprd1
> echo -e "truncate do mysql"
> for i in $($LS -l /mspsites/planetun/www/carga/ | $AWK -F" " '{ print 
> $8 }' | egrep "(\.csv|\.txt|\.CSV|\.TXT)")
> do
> echo -e "entrou no for"
>    fornecedor=`echo $i | $CUT -c 1-3 | $SED 's/^0*//;'` ;
>    fornec_cod=`echo $i | $CUT -c 1-3` ;
>    arqui_ext=`echo $i | $CUT -c 14-16` ;
>    arquivo=`echo $i | $CUT -d"." -f1`;
>    registros=`$WC -l < $i`;
>    j=FILE01.tmp ;
>    k=FILE02.tmp ;
>    $MYSQL -uplanetun -pxxxxxxxxxx -e \
>    "SELECT codigoempresa, montadora, genuina, original, generica, 
> nomefantasia
>       FROM sucursais
>      WHERE codigoempresa = $fornecedor
>      AND fornecedor = 1 ;" pntprd1 > /tmp/resultado.tmp
>    
>     
>    IFS="$(echo -e '\t')"
>    
>    S=$($CAT /tmp/resultado.tmp | $SED '1d')
>  
>    [ "$S" ] || {
>       echo " ";
>       echo "Registro nao encontrado";
>       echo "Fornecedor $fornec_cod nao cadastrado!!!";
>       echo "Gravando log de erro.....";
>       $MYSQL -uplanetun -pxxxxxxxxxx -e \
>       "INSERT INTO errosimportacao (
>                    codigoempresa,
>                dataerro,
>            mensagem
>            )
>             VALUES (
>                $fornecedor,
>            now(),
>            'Fornecedor $fornec_cod nao cadastrado. Arquivo $i nao 
> processado!!!'
>            )" pntprd1
>       echo " ";
>       exit;
>       }
>    
>    echo "$S" | while read codigoempresa montadora genuina original 
> generica nomefantasia ; do
>    
>    echo "
>    Arquivo......: $i ($arqui_ext)
>    No. registros: $registros
>    Fornecedor...: $fornec_cod - $nomefantasia
>    codigoempresa: $codigoempresa
>    montadora....: $montadora
>    genuina......: $genuina
>    original.....: $original
>    generica.....: $generica"
>    $DOS2UNIX /mspsites/planetun/www/carga/$i   
>    $CAT /mspsites/planetun/www/carga/$i | $SED '/^$/d ; /^ \{35\}/d' > 
> /tmp/$j
>    $MYSQL -uplanetun -pxxxxxxxxxx -e "truncate table importapeca ;" 
> pntprd1
>    $MV /mspsites/planetun/www/carga/$i 
> /mspsites/planetun/www/carga/processados/$i
>    if [ "$arqui_ext" = "txt" -o "$arqui_ext" = "TXT" ]
>       then
>       if [ "$genuina" -eq "1" ]
>          then
>          #  cat $i | cut -c 1-25 | sed 's/^ *//;s/ *$//' > 
> partnumber.tmp ;
>          $CAT /tmp/$j | $CUT -c 1-25 | $SED 's#/##g ; s/ //g;' > 
> /tmp/partnumber.tmp ;
>          $CAT /tmp/$j | $CUT -c 26-60 | $SED 's/ *$//' > 
> /tmp/descricao.tmp ;
>          $CAT /tmp/$j | $CUT -c 61-61 > /tmp/tipo.tmp ;
>          $CAT /tmp/$j | $CUT -c 62-64 > /tmp/montadora.tmp ;
>          $CAT /tmp/$j | $CUT -c 65-76 > /tmp/valor.tmp ;
>          $CAT /tmp/$j | $CUT -c 77-79 | $SED 's/ //g;' > /tmp/grupo.tmp ;
>          $PASTE /tmp/partnumber.tmp /tmp/descricao.tmp /tmp/tipo.tmp 
> /tmp/montadora.tmp /tmp/valor.tmp /tmp/grupo.tmp > /tmp/$j
>          $CAT /tmp/$j | $AWK -F"\t" '{ print 
> $4";"$3";"$1";"0";"$2";"$1";"$1";"$5";"0";"$6 }' > /tmp/$arquivo.tmp
>      while read linha ; do echo "$fornec_cod;$linha" >> /tmp/tmp ; 
> done < /tmp/$arquivo.tmp ; $MV /tmp/tmp /tmp/$arquivo.pnt
>          $MYSQL -uplanetun -pxxxxxxxxxx -e "LOAD DATA INFILE 
> '/tmp/$arquivo.pnt' IGNORE INTO TABLE importapeca FIELDS TERMINATED BY 
> ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n' (codigofornecedor, 
> montadora, tipopeca, partnumber, fabricante, descricao, 
> codpecadofornec, codpecadofabric, precobruto, precoliquido, 
> grupodesconto)" pntprd1
> #     else
> #        exit;
>       fi
>    fi
>    if [ "$arqui_ext" = "csv" -o "$arqui_ext" = "CSV" ]
>       then
>       if [ "$genuina" -eq "1" ]
>          then
>          $CAT /tmp/$j | $AWK -F";" '{ print 
> $4";"$3";"$1";"0";"$2";"$1";"$1";"$5";"0";"$6 }' > /tmp/$k
>      while read linha ; do echo "$fornec_cod;$linha" >> /tmp/tmp ; 
> done < /tmp/$k ; $MV /tmp/tmp /tmp/$arquivo.pnt
>          $MYSQL -uplanetun -pxxxxxxxxxx -e "LOAD DATA INFILE 
> '/tmp/$arquivo.pnt' IGNORE INTO TABLE importapeca FIELDS TERMINATED BY 
> ';' ENCLOSED BY '\"' LINES TERMINATED BY '\n' (codigofornecedor, 
> montadora, tipopeca, partnumber, fabricante, descricao, 
> codpecadofornec, codpecadofabric, precobruto, precoliquido, 
> grupodesconto)" pntprd1
> #     else
> #        exit;
>       fi
>    fi
>    $RM /tmp/*.tmp /tmp/*.pnt
>    $LYNX -dump http://www.planetun.com.br/importacatalogos_processa.cfm
>    wait $!
>    done
> done
> echo -e "Termino: `date +%c`"
>



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



reply via email to

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