The UNIX and Linux Forums  

Go Back   UNIX og Linux Forums > Top Forums > Shell Programmering og Scripting
.
google unix.com



Shell Programmering og Scripting Post spørgsmål om ksh, CSH, SH, Bash, Perl, PHP, SED, AWK og ANDRE shell scripts og Shell scriptsprog her.

Mere UNIX og Linux Forum Emner du måske kan finde Helpful
Tråd Thread Starter Forum Svar Last Post
afgøre, om scriptet er blevet anvendt for manuelt eller ej? hitmansilentass Shell Programmering og Scripting 8 06-22-2008 12:32 PM
SFTP errorcode 1, når de kører på cron men kører manuelt Heidi.Ebbs Sun Solaris 2 08-08-2007 01:16 PM
check in UNIX shell script, så ingen er i stand til at køre scriptet manuelt adi_bang76 Shell Programmering og Scripting 1 11-16-2006 10:43 AM
Works Manuelt - ikke i cron dstinsman UNIX for dummyer Spørgsmål & svar 5 03-06-2006 08:36 AM
Kan køre scriptet manuelt, men ikke gennem Cron? MadHatter Shell Programmering og Scripting 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 Søg denne tråd Rate Thread Display Modes
  #1 (permalink)  
Old 11-17-2008
billtwild billtwild is offline
Registreret Bruger
  
 

Join Date: Nov 2008
Stillinger: 2
Script opfører sig anderledes, når løbe fra cron vs manuelt

Hej alle,

Ville bare til at få nogle input på et script jeg bruger til at importere filer til en MySQL-database.

Processen er ret enkel: min primære server eksport af disse filer og FTPs dem. Jeg har et script, der FTPs dem til den maskine, der kører, der kører dette script. FTP-script kører uden problem hver gang, bith fra cron eller manuelt.

Problemet opstår, når cron kører scriptet nedenfor. Vær slags, det er min første scripts.

Løkken kører fint første gang, men når det sløjfer igen det dør på det punkt, hvor mysqlimport kaldes igen. Den første fil, i dette tilfælde website_tabProperty.txt virker fint. Det dør på website_tabBuilding.txt.

Min cron er indstillet til at køre dette script som root.

Jeg har kørt scriptet manuelt. "/" I lang tid og virker hver gang.

Jeg regnede med sin et problem med loop og cron men jeg kan ikke komme op med noget.

Tak for din hjælp.

Regning


Code:

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

Join Date: Sep 2007
Location: Tyskland
Stillinger: 2311
Der er tonsvis af de samme spørgsmål til cronjobs her på forummet, så du vil finde masser med søgefunktionen af forummet. Se også dette:

cron og crontab
  #3 (permalink)  
Old 11-21-2008
billtwild billtwild is offline
Registreret Bruger
  
 

Join Date: Nov 2008
Stillinger: 2
Citat:
Oprindeligt Indsendt af zaxxon View Post
Der er tonsvis af de samme spørgsmål til cronjobs her på forummet, så du vil finde masser med søgefunktionen af forummet. Se også dette:

cron og crontab

Mens jeg sætter pris på linket og forslaget om at anvende søge --- som jeg gjorde - var der ikke en stor mængde oplysninger om, hvordan miljøet påvirker scripts specifikt. Jeg håbede, at nogen måske har erfaring på dette område, og kunne punkt mig i retning af at anvende mere vanilje (dvs. - løber ligegyldigt hvad) vs hvad jeg har gjort ovenfor.

Af den måde, vil jeg jeg havde en nikkel for hver time jeg spillede Zaxxon på min C64 som et barn.
Closed Thread

Bogmærker

Thread Tools Søg denne tråd
Søg denne tråd:

Avanceret søgning
Display Modes Bedøm denne tråd
Bedøm denne tråd:

Udstationering Regler
Du kan ikke post nye tråde
Du kan ikke post svar
Du kan ikke post vedhæftede filer
Du kan ikke redigere dine indlæg

BB-kode er
Smilies er
[IMG] koden er
HTML-koden er Slukket
Trackbacks er
Pingbacks er
Refbacks er




Alle tidspunkter er GMT -4. Den tid er nu 04:10 PM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Oversættelser Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
UNIX og Linux Forums Content Copyright © 1993-2009. Alle rettigheder Reserved.Ad Management ved RedTyger

Content Relevant webadresser ved vBSEO 3.2.0