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

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

[OT] CRON x SHELL


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

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]