The UNIX and Linux Forums  


Go Back   UNIX e Linux Forum > Inizio Forum > Shell scripting e di programmazione
.
google unix.com



Shell scripting e di programmazione Pubblica domande su KSH, CSH, SH, Bash, Perl, PHP, sed, awk e da altri script di shell e linguaggi di scripting shell qui.

Più di UNIX e Linux Forum Argomenti potreste trovare utili
Filo Thread Starter Forum Risposte Ultimo Post
determinare se lo script è stato invocato manualmente o no? hitmansilentass Shell scripting e di programmazione 8 06-22-2008 12:32 PM
SFTP errorcode 1 quando si spostano su cron, ma corre manualmente Heidi.Ebbs SUN Solaris 2 08-08-2007 01:16 PM
effettuare il check-in unix script di shell in modo tale che nessuno è in grado di eseguire lo script manualmente adi_bang76 Shell scripting e di programmazione 1 11-16-2006 10:43 AM
Opere manuale - non CRON dstinsman UNIX for Dummies Domande & Risposte 5 03-06-2006 08:36 AM
È possibile eseguire lo script manualmente, ma non attraverso di cron? MadHatter Shell scripting e di programmazione 4 10-19-2005 11:08 AM

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 Cerca in questo Thread Rate Thread Modalità di visualizzazione
  #1 (permalink)  
Old 11-17-2008
billtwild billtwild is offline
Utente Registrato
  
 

Iscriviti Data: novembre 2008
Interventi: 2
Script comportamento diverso quando viene eseguito da cron vs manualmente

Ciao a tutti,

Just voluto un po 'di ingresso su uno script sto utilizzando per importare file in un database MySQL.

Il processo è abbastanza semplice: il mio server principale delle esportazioni di questi file e FTPS loro. Ho uno script che FTPS al funzionamento della macchina che esegue questo script. FTP script viene eseguito senza problema ogni volta, bith dal cron o manualmente.

Il problema si verifica quando il cron esegue lo script qui di seguito. Si prega di essere gentili, questi sono il mio primo script.

Il ciclo viene eseguita correttamente, la prima volta, ma quando si torna nuovamente loop muore nel punto in cui è chiamato nuovamente mysqlimport. Il primo file, in questo caso il website_tabProperty.txt funziona bene. Si muore a website_tabBuilding.txt.

Il mio cron è impostato per eseguire lo script come root.

Sono stato in esecuzione manualmente questo script ". /" Per un lungo periodo di lavori e ogni volta.

Ho un problema la sua figura con il loop e la sopraelevazione di cron, ma ho elaborato nulla.

Grazie per il vostro aiuto.

Conto

Codice:

#!/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  
Moderatore
  
 

Iscriviti Data: Sep 2007
Posizione: Germania
Messaggi: 2.289
Ci sono tonnellate di domande per la stessa cronjobs qui sul forum in modo che si trovano abbondantemente con la funzione di ricerca previste dal forum. Controllate anche questo:

cron e crontab
  #3 (permalink)  
Old 11-21-2008
billtwild billtwild is offline
Utente Registrato
  
 

Iscriviti Data: novembre 2008
Interventi: 2
Citazione:
Originalmente inviato da Zaxxon View Post
Ci sono tonnellate di domande per la stessa cronjobs qui sul forum in modo che si trovano abbondantemente con la funzione di ricerca previste dal forum. Controllate anche questo:

cron e crontab

Mentre io apprezzo il collegamento e il suggerimento di utilizzare --- ricerca che ho fatto - non c'era una grande quantità di informazioni specifiche su come l'ambiente influisce script specifico. Speravo che qualcuno potrebbe avere esperienza in questo settore e mi potrebbe punto in direzione di utilizzare più di vaniglia (vale a dire - non importa quale corre) vs quello che ho fatto in precedenza.

A proposito, vorrei ha avuto un centesimo per ogni ora ho giocato il mio Zaxxon C64 come un bambino.
Closed Thread

Segnalibri

Thread Tools Cerca in questo Thread
Cerca in questo Thread:

Ricerca Avanzata
Modalità di visualizzazione Vota questo thread
Vota questo thread:

Distacco regolamento
Tu non può post nuovo thread
Tu non può inviare una risposta
Tu non può postare allegati
Tu non può modificare i tuoi post

BB codice è Su
Smilies sono Su
[IMG] codice Su
Codice HTML è Chiuso
Trackbacks sono Su
Pingbacks sono Su
Refbacks sono Su




Tutti gli orari sono GMT -4. La data di oggi è 08:21 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traduzioni Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX e Linux Forum Content Copyright © 1993-2009. Tutti i diritti Reserved.Ad di gestione da RedTyger

Contenuti pertinenti URL da vBSEO 3.2.0