The UNIX and Linux Forums  


Go Back   El UNIX y Linux Foros > Arriba Foros > Programación de scripts de shell y
.
google unix.com



Programación de scripts de shell y Plantear preguntas sobre KSH, CSH, SH, BASH, PERL, PHP, SED, AWK y otros scripts de shell y lenguajes de script de shell aquí.

Más UNIX y Linux Foro Temas usted puede encontrar útiles
Hilo Hilo para principiantes Foro Respuestas Último mensaje
determinar si el script se ha invocado manualmente o no? hitmansilentass Programación de scripts de shell y 8 06-22-2008 12:32 PM
SFTP ERRORCODE 1 cuando se ejecutan en cron, pero se ejecuta manualmente Heidi.Ebbs Sun Solaris 2 08-08-2007 01:16 PM
comprobar en unix script de shell para que nadie es capaz de ejecutar el script manualmente adi_bang76 Programación de scripts de shell y 1 11-16-2006 10:43 AM
Manual de obras - no CRON dstinsman UNIX for Dummies Preguntas y Respuestas 5 03-06-2006 08:36 AM
Secuencia de comandos puede ejecutar manualmente, pero no a través de cron? MadHatter Programación de scripts de shell y 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 vínculo Herramientas de hilo Buscar en este Hilo Tasa de Hilo Modos de visualización
  #1 (Enlace permanente)  
Old 11-17-2008
billtwild billtwild is offline
Usuario Registrado
  
 

Fecha: noviembre 2008
Publicaciones: 2
Script se comporta diferente cuando se ejecuta desde cron vs manualmente

Hola a todos,

Sólo quería obtener información sobre un script lo estoy usando para importar los archivos en una base de datos MySQL.

El proceso es bastante simple: mi servidor principal y las exportaciones de estos archivos FTPs ellos. Tengo un script que FTPs a la máquina que ejecuta este script. La secuencia de comandos FTP funciona sin problema todo el tiempo, bith del cron o manualmente.

El problema se produce cuando el cron ejecuta el script de abajo. Por favor, tenga en especie, estos son mis primeros guiones.

El bucle se ejecuta bien el primer tiempo, pero cuando los bucles se muere de nuevo en el punto en que mysqlimport se llama de nuevo. El primer archivo, en este caso la website_tabProperty.txt funciona bien. Muere en website_tabBuilding.txt.

Mi cron se configura para ejecutar este script como root.

He estado ejecutando este script manualmente ". /" Durante mucho tiempo y funciona todo el tiempo.

Una cifra que su problema con el bucle y el cron, pero no puedo llegar a nada.

Gracias por tu ayuda.

Cuenta


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 (Enlace permanente)  
Old 11-17-2008
zaxxon's Avatar
zaxxon zaxxon is offline Forum Staff  
Moderador
  
 

Fecha: Sep 2007
Lugar: Alemania
Puestos: 2.311
Hay toneladas de las mismas preguntas para cronjobs aquí en el foro para que usted se encuentra con mucho la función de búsqueda proporcionada por el foro. También verifique lo siguiente:

cron y crontab
  #3 (Enlace permanente)  
Old 11-21-2008
billtwild billtwild is offline
Usuario Registrado
  
 

Fecha: noviembre 2008
Publicaciones: 2
Cita:
Publicado originalmente por zaxxon View Post
Hay toneladas de las mismas preguntas para cronjobs aquí en el foro para que usted se encuentra con mucho la función de búsqueda proporcionada por el foro. También verifique lo siguiente:

cron y crontab

Si bien apreciamos el enlace y la sugerencia de utilizar la búsqueda que hice --- - no hubo una gran cantidad de información específica acerca de cómo el ambiente influye en los guiones específicamente. Tenía la esperanza de que alguien pueda tener experiencia en este campo, y me podría apuntar en la dirección de utilizar más de vainilla (es decir, - no importa lo que se ejecuta) frente a lo que he hecho anteriormente.

Por cierto, deseo que tenía un centavo por cada hora que jugué Zaxxon en mi C64 como un niño.
Closed Thread

Marcadores

Herramientas de hilo Buscar en este Hilo
Buscar en este Hilo:

Búsqueda avanzada
Modos de visualización Vota a este hilo
Vota a este hilo:

Normas de envío
puede que no nuevo puesto de hilos
puede que no enviar respuestas
puede que no enviar archivos adjuntos
puede que no editar sus puestos

Código BB es Encendido
Emoticones son Encendido
[IMG] código Encendido
Código HTML es Apagado
Trackbacks son Encendido
Pingbacks son Encendido
Refbacks son Encendido




Todas las horas son GMT -4. La hora es 02:57 AM.


Powered by: vBulletin, Copyright © 2000 - 2006, Jelsoft Enterprises Limited. Traducciones de idiomas Powered by .
vBCredits v1.4 Copyright © 2007 - 2008, PixelFX Estudios
El UNIX y Linux Foros Contenido Copyright © 1993-2009. Todos los derechos Reserved.Ad Gestión por RedTyger

Las direcciones URL de contenido vBSEO 3.2.0