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 <[EMAIL PROTECTED]>
# 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]



---------------------------------------------------------------------
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: [EMAIL PROTECTED]
---------------------------------------------------------------------
Esta lista é moderada de acordo com o previsto em http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.programming.shell.brazil




Yahoo! Grupos, um serviço oferecido por:
PUBLICIDADE


Links do Yahoo! Grupos

Responder a