The UNIX and Linux Forums  

Go Back   Les systèmes UNIX et Linux Forums > Top Forums > De programmation et de script Shell
.
google unix.com



De programmation et de script Shell Posez vos questions à propos de KSH, CSH, SH, BASH, PERL, PHP, SED, awk et d'autres scripts shell et les langages de script shell ici.

Plus d'UNIX et Linux Forum Sujets Vous trouverez peut-être utile
Fil Thread Starter Forum Réponses Last Post
déterminer si le script a été invoqué manuellement ou pas? hitmansilentass De programmation et de script Shell 8 06-22-2008 12:32 PM
SFTP errorcode 1 quand il est lancé sur le cron fonctionne manuellement, mais Heidi.Ebbs SUN Solaris 2 08-08-2007 01:16 PM
vérifier dans le script shell unix pour que nul ne soit en mesure d'exécuter le script manuellement adi_bang76 De programmation et de script Shell 1 11-16-2006 10:43 AM
Travaux manuelle - non pas en CRON dstinsman UNIX pour les nuls Questions et réponses 5 03-06-2006 08:36 AM
Puis exécuter le script manuellement, mais pas par le biais de Cron? MadHatter De programmation et de script Shell 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 Recherche sur ce Thread Rate Thread Modes d'affichage
  #1 (permalink)  
Old 11-17-2008
billtwild billtwild is offline
Registered User
  
 

Date d'inscription: novembre 2008
Messages: 2
Le script comporte différents quand il est lancé par cron ou manuellement

Hey all,

Je voulais simplement pour obtenir quelques données sur un script que j'utilise pour importer des fichiers dans une base de données MySQL.

Le processus est assez simple: mon serveur principal, les exportations de ces fichiers et leur FTPs. J'ai un script qui FTPs à la machine qui exécute ce script. Le script FTP fonctionne sans problème à chaque fois, de la Bith cron ou manuellement.

Le problème se produit lorsque le cron fonctionne le script ci-dessous. S'il vous plaît être aimable, ce sont mes premiers scripts.

La boucle fonctionne bien la première fois, mais quand il la boucle de retour, il meurt au moment où mysqlimport est de nouveau appelé. Le premier fichier, dans ce cas, la website_tabProperty.txt fonctionne bien. Il meurt à website_tabBuilding.txt.

Mon cron est d'exécuter ce script en tant que root.

J'ai été l'exécution de ce script manuellement ". /" Pendant une longue période de travaux et à chaque fois.

J'ai un problème de son chiffre avec la boucle et le cron, mais je cant arriver à quoi que ce soit.

Merci pour votre aide.

Facture

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  
Modérateur
  
 

Join Date: Sep 2007
Lieu: Allemagne
Posts: 2288
Il existe des tonnes de questions pour la même cronjobs ici sur le forum afin que vous trouverez à la fonction de recherche prévue par le forum. Vérifiez également ceci:

cron et crontab
  #3 (permalink)  
Old 11-21-2008
billtwild billtwild is offline
Registered User
  
 

Date d'inscription: novembre 2008
Messages: 2
Citation:
Posté par zaxxon View Post
Il existe des tonnes de questions pour la même cronjobs ici sur le forum afin que vous trouverez à la fonction de recherche prévue par le forum. Vérifiez également ceci:

cron et crontab

Bien que j'apprécie le lien et la suggestion d'utiliser la recherche --- ce que j'ai fait - il n'y avait pas une grande quantité d'informations précises sur la façon dont l'environnement influe sur les scripts en particulier. J'espérais que quelqu'un pourrait avoir de l'expérience dans ce domaine et pourrait me point dans le sens de l'utilisation de plus de vanille (c'est-à-dire - fonctionne quelle que soit) contre ce que j'ai fait ci-dessus.

En passant, j'aimerais avoir un sou pour chaque heure que j'ai joué sur mon C64 Zaxxon comme un gamin.
Closed Thread

Bookmarks

Thread Tools Recherche sur ce Thread
Recherche sur ce Thread:

Recherche avancée
Modes d'affichage Rate this thread
Rate this thread:

Règles de messages
Tu mai pas de nouvelles discussions: nonoui
Tu mai pas envoyer des réponses:
Tu mai pas envoyer des pièces jointes
Tu mai pas modifier vos messages

BB code est Sur
Smilies sont Sur
[IMG] code est Sur
Le code HTML est Hors tension
Trackbacks sont Sur
Pingbacks sont Sur
Refbacks sont Sur




Toutes les heures sont au format GMT -4. Le temps est maintenant 06:49 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traductions Langue Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Studios
Les systèmes UNIX et Linux Forums Content Copyright © 1993-2009. Tous droits Reserved.Ad de gestion par RedTyger

Content Relevant URLs par vBSEO 3.2.0