[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]
- [OT] CRON x SHELL,
Marcus Vinicius P Coimbra <=