The UNIX and Linux Forums  


Go Back   O UNIX e Linux Forum > Top Fóruns > Programação Shell Script e
.
google unix.com



Programação Shell Script e Post perguntas sobre ksh, CSH, SH, BASH, Perl, PHP, SED, Awk e outros scripts shell e shell scripts línguas aqui.

Mais UNIX e Linux Fórum Tópicos Você pode achar Helpfull
Fio Thread Starter Fórum Respostas Última postagem
determinar se o script foi invocada manualmente ou não? hitmansilentass Programação Shell Script e 8 06-22-2008 12:32
SFTP Errorcode 1 quando executado no cron, mas é executado manualmente Heidi.Ebbs Sun Solaris 2 08-08-2007 01:16
check-in unix shell script para que ninguém seja capaz de executar o script manualmente adi_bang76 Programação Shell Script e 1 11-16-2006 10:43
Obras manualmente - não em CRON dstinsman UNIX para Dummies Perguntas & Respostas 5 03-06-2006 08:36
Pode executar o script manualmente, mas não através Cron? MadHatter Programação Shell Script e 4 10-19-2005 11:08

Closed Thread
English Japanese Spanish French German Portuguese Italian Dutch Swedish Russian Norwegian Hungarian Hebrew Danish Bulgarian Greek Powered by Powered by Google
 
Linkback Thread Tools Pesquisar este Thread Rate Thread Display Modes
  #1 (permalink)  
Old 11-17-2008
billtwild billtwild is offline
Usuário
  
 

Join Date: Nov 2008
Posts: 2
Script comportamento diferente quando executado a partir vs cron manualmente

Olá todos,

Só queria obter algumas informações sobre um script que estou usando para importar arquivos em um banco de dados MySQL.

O processo é muito simples: o meu servidor principal exportações desses arquivos e FTPS eles. Eu tenho um script que FTPS-los para a máquina que executa esta executando o script. O FTP script é executado sem problema cada vez, bith do cron ou manualmente.

O problema ocorre quando o cron executa o script abaixo. Lembre-se tipo, estes são meus primeiros scripts.

A malha fina é executado pela primeira vez, mas quando ele faz um loop de volta ele morre no ponto onde mysqlimport é chamado novamente. O primeiro arquivo, nesse caso, a multa website_tabProperty.txt obras. Ela morre em website_tabBuilding.txt.

Minha cron está configurado para executar o script como root.

Tenho sido manualmente executando o script. "/" Por um longo tempo e de obras de cada vez.

Eu acho um problema com o seu ciclo e do cron, mas eu cant aparecer com alguma coisa.

Obrigado por sua ajuda.

Conta


Código:

#!/bin/bash
echo "Starting new batch import `date`"  
echo "Starting new batch import `date`" >> /root/import.log

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
#Imporatnt: The last file and table in these arrays MUST be the data that is targeted for
#the append operation.

#define the files names for import and existance verification. These are renamed to the names below
file_name[1]=/root/website_tabProperty.txt
file_name[2]=/root/website_tabBuilding.txt
file_name[3]=/root/website_tabApartment.txt
file_name[4]=/root/website_tabMeters.txt
file_name[5]=/root/website_tabReadings.txt

#define the file names for importation. The file names must match the table names
target_file_name[1]=/root/tabProperty.txt
target_file_name[2]=/root/tabBuilding.txt
target_file_name[3]=/root/tabApartment.txt
target_file_name[4]=/root/tabMeters.txt
target_file_name[5]=/root/tabReadings.txt

#define the target tables to flush
target_table[1]=tabProperty
target_table[2]=tabBuilding
target_table[3]=tabApartment
target_table[4]=tabMeters
target_table[5]=tabReadings

#this number nust be one higher than the max index in the arrays. 
MAX_LOOP=6

#Set this value to the index we want to append - will force it to skip the flush
APPEND_INDEX=5

#~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~




#set the file name suffix for the renaming routine
suffix=`date +%m_%d_%Y`



COUNTER=1


while [ $COUNTER -lt $MAX_LOOP ]; do


    echo "---------------------------------------" 
    echo "---------------------------------------" >> /root/import.log
    
    echo "Processing index - "$COUNTER 
    echo "Processing index - "$COUNTER >> /root/import.log

    DIR=${file_name[COUNTER]}
    if [ -f $DIR ];then

    
        echo "Original "${file_name[COUNTER]}" exists" 
        echo "Original "${file_name[COUNTER]}" exists" >> /root/import.log

        echo "Renaming "${file_name[COUNTER]}  
        echo "Renaming "${file_name[COUNTER]} >> /root/import.log
        cp ${file_name[COUNTER]} ${target_file_name[COUNTER]}

        echo "Removing "${file_name[COUNTER]} 
        echo "Removing "${file_name[COUNTER]} >> /root/import.log
        rm ${file_name[COUNTER]}

        #Only flush the table if it is not the last one in the index
        if [ $COUNTER != $APPEND_INDEX ]; then
            echo "Flushing "${target_table[COUNTER]} 
            echo "Flushing "${target_table[COUNTER]} >> /root/import.log
            mysql -u root -p8895asdf7665553 -e "use wellspring; delete from "${target_table[COUNTER]}";"
            sleep 2
        else
            echo "Not Flushing "${target_table[COUNTER]} 
            echo "Not Flushing "${target_table[COUNTER]} >> /root/import.log
        fi

        echo "Importing "${target_file_name[COUNTER]} 
        echo "Importing "${target_file_name[COUNTER]} >> /root/import.log
        mysqlimport -u root -p8895asdf7665553 --local wellspring ${target_file_name[COUNTER]}
        sleep 2

        echo "Renaming "${target_file_name[COUNTER]} 
        echo "Renaming "${target_file_name[COUNTER]} >> /root/import.log
        cp ${target_file_name[COUNTER]} ${target_file_name[COUNTER]}.$suffix
        sleep 1

        echo "Removing "${target_file_name[COUNTER]} 
        echo "Removing "${target_file_name[COUNTER]} >> /root/import.log
        rm ${target_file_name[COUNTER]}
        sleep 1


    else


        echo "Original "${file_name[COUNTER]}" does not exist"
        echo "Original "${file_name[COUNTER]}" does not exist" >> /root/import.log
        



    fi

    

    let COUNTER=COUNTER+1
done

echo "---------------------------------------" 
echo "---------------------------------------" >> /root/import.log

echo "Finished batch import `date`" 
echo "Finished batch import `date`" >> /root/import.log

echo "*********************************************************************************" 
echo "*********************************************************************************" >> /root/import.log


exit

  #2 (permalink)  
Old 11-17-2008
zaxxon's Avatar
zaxxon zaxxon is offline Forum Staff  
Moderador
  
 

Join Date: Sep 2007
Local: Alemanha
Posts: 2.311
Existem toneladas de as mesmas perguntas para cronjobs aqui no fórum, para que você ia encontrar bastante com a função de busca fornecidos pelo fórum. Verifique também o seguinte:

cron e crontab
  #3 (permalink)  
Old 11-21-2008
billtwild billtwild is offline
Usuário
  
 

Join Date: Nov 2008
Posts: 2
Citação:
Originally Posted by zaxxon View Post
Existem toneladas de as mesmas perguntas para cronjobs aqui no fórum, para que você ia encontrar bastante com a função de busca fornecidos pelo fórum. Verifique também o seguinte:

cron e crontab

Embora eu aprecie o link e, a sugestão de usar pesquisa --- o que eu fiz - não havia uma grande quantidade de informações específicas sobre como o ambiente influencia scripts especificamente. Eu estava esperando que alguém pode ter experiência nesta área e poderia apontar-me no sentido de utilizar mais baunilha (ou seja - não importa o que é executado) vs o que eu fiz acima.

Pela maneira, eu desejo que eu tinha um níquel para cada hora eu jogava Zaxxon no meu C64 como um garoto.
Closed Thread

Marcadores

Thread Tools Pesquisar este Thread
Pesquisar este Thread:

Pesquisa Avançada
Display Modes Esta taxa Thread
Esta taxa Thread:

Destacamento Regimento
Você não pode postar novas threads
Você não pode postar respostas
Você não pode postar anexos
Você não pode editar suas postagens

BB code é Ligado
Smilies são Ligado
[IMG] código é Ligado
Código HTML é Desligado
Trackbacks são Ligado
Pingbacks são Ligado
Refbacks são Ligado




Todos os horários são GMT -4. A hora é agora 05:45.


Powered by: vBulletinCopyright © 2000 - 2006, Jelsoft Enterprises Limited. Língua Traduções Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
O UNIX e Linux Fóruns Content Copyright © 1993-2009. Todos os Direitos Reserved.Ad Gestão por RedTyger

Content Relevant URLs por vBSEO 3.2.0