[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]
- [OT] CRON x SHELL, Marcus Vinicius P Coimbra, 2006/05/22
- Re: [OT] CRON x SHELL,
Marcus Vinicius P Coimbra <=