logo       

[OT] CRON x SHELL: msg#00116

Subject: [OT] CRON x SHELL
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

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

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 <mvinicius@xxxxxxxxxxxx>
# 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`"



[Non-text portions of this message have been removed]



------------------------ Yahoo! Groups Sponsor --------------------~--> 
Get to your groups with one click. Know instantly when new email arrives
http://us.click.yahoo.com/.7bhrC/MGxNAA/yQLSAA/0XFolB/TM
--------------------------------------------------------------------~-> 

---------------------------------------------------------------------
Esta lista eh moderada de acordo com o previsto em 
http://www.listas-discussao.cjb.net
---------------------------------------------------------------------
Antes de perguntar, consulte o historico da lista ou acesse:
Guia Foca GNU/Linux: http://focalinux.cipsga.org.br/
---------------------------------------------------------------------
Como Fazer Perguntas Inteligentes:
http://www.istf.com.br/?page=perguntas
---------------------------------------------------------------------
Visite nossa comunidade no Orkut:

http://www.orkut.com/Community.aspx?cmm=759644
---------------------------------------------------------------------
Divulgue nosso grupo:

http://groups.yahoo.com/group/suse-linux-br/
---------------------------------------------------------------------
Cancelar assinatura.: suse-linux-br-unsubscribe@xxxxxxxxxxxxxxx 
---------------------------------------------------------------------
Servidor Newsgroup da lista: news.gmane.org
Grupo: gmane.org.user-groups.linux.brazil.suse-linux
--------------------------------------------------------------------- 
Yahoo! Groups Links

<*> To visit your group on the web, go to:
    http://groups.yahoo.com/group/suse-linux-br/

<*> To unsubscribe from this group, send an email to:
    suse-linux-br-unsubscribe@xxxxxxxxxxxxxxx

<*> Your use of Yahoo! Groups is subject to:
    http://docs.yahoo.com/info/terms/
 





<Prev in Thread] Current Thread [Next in Thread>