No te quiero marear, pero te copio una alternativa que quizás te resulte
útil.

 

Mi Cron

------------------

#contab -e

0 21 * * 1-6 /backups/postgresql/pgBackup.sh Desarrollo

0 22 * * 1-6 /backups/postgresql/pgBackup.sh QA

 

Mi Script de backup

---------------------

#!/bin/sh

if [ $# -eq 1 ]

then  

      FECHA=$(date "+%Y%m%d.%H")

        export FECHA

        AMBIENTE=$1

        export AMBIENTE

 

        # Generar scripts.sql de las bases de datos

        #

        if [ $AMBIENTE == "Desarrollo" ]

        then

                BBDD=`su -l postgres -c '/usr/lib/postgresql/8.3/bin/psql
--port=5432 -q -t -c "select datname from pg_database;"'`

        else

                if [ $AMBIENTE == "QA" ]

                then

                        BBDD=`su -l postgres -c
'/hddotros/QA/usr/local/bin/psql --port=5435 -q -t -c "select datname from
pg_database;"'`

                fi

        fi

 

        for bd in  $BBDD; do

                # FILTRA para dejar fuera a Nagios o a otras BD que no
quiero respaldar

                #

                if [ $bd != "nagios" ]

                then

                        if [ $AMBIENTE == "Desarrollo" ]

                        then

                                su -l postgres -c
"(/usr/lib/postgresql/8.3/bin/pg_dump --port=5432 $bd) >
/backups/postgresql/$AMBIENTE/$bd.sql"

                        else

                                if [ $AMBIENTE == "QA" ]

                                then

                                        su -l postgres -c
"(/hddvirtual/QA/usr/local/bin/pg_dump --port=5435 $bd) >
/backups/postgresql/$AMBIENTE/$bd.sql"

                                fi

                        fi

                fi

        done

 

        # Mover scripts de BBDD a sus carpetas correspondientes

        #

        mkdir /backups/postgresql/$AMBIENTE/$FECHA

        CMD="mv /backups/postgresql/$AMBIENTE/*.sql
/backups/postgresql/$AMBIENTE/$FECHA/."

        export CMD

 

        $CMD

        echo $FECHA.$AMBIENTE

        echo $CMD

 

 

        # Comprimir

        #

        #CMD="/backups/backups.sh /backups/postgresql/$AMBIENTE/$FECHA/
$PREFIJO_ARCHIVO_SALIDA $FECHA"

        CMD="AQUÍ tu comando o Script para comprimir comprime.backups.sh
$AMBIENTE $FECHA otro"

        export CMD

 

        $CMD

        echo $CMD

else

        echo "Falta parametro de ambiente; Desarrollo o QA"

fi

exit $?

 

-----------------

De antemano sorry que no soy nada ducho en temas de shellsssss  y de hecho
hay formas más bonitas de hacerlo…

 

-      El Script, se  ejecuta de lunes a sábado a las 21 y 22 hrs (según
ambiente  Desarrollo puerto 5423, o QA puerto 5435, ya que hay dos Postgres
corriendo)

-      El script genera el respaldo en la carpeta
/backups/postgresql/$AMBIENTE/$FECHA

-      El archivo de salida, se genera en formato texto, default de
Postgres.

 

 

Gracias

Atentamente, 

 

Juan 

 

 

 

 

 

De: pgsql-es-ayuda-ow...@postgresql.org
[mailto:pgsql-es-ayuda-ow...@postgresql.org] En nombre de Adrián M. Peña
Montero
Enviado el: martes, 24 de abril de 2012 15:44
Para: 'maria teresa tarquino chavez'; 'FORO POSTGRES'
Asunto: RE: [pgsql-es-ayuda] Error al ejecutar el respaldo automatico con el
crontab

 

Lo que me gustaría ver es el comando que realmente se ejecuta, con las
variables sustituidas por las valores de las mismas.

 

Saludos

 

From: pgsql-es-ayuda-ow...@postgresql.org
[mailto:pgsql-es-ayuda-ow...@postgresql.org] On Behalf Of maria teresa
tarquino chavez
Sent: Tuesday, April 24, 2012 2:35 PM
To: FORO POSTGRES
Subject: RE: [pgsql-es-ayuda] Error al ejecutar el respaldo automatico con
el crontab

 

Hola Adrian,  Lo estoy ejecutando con el usuario postgres... me da el mismo
error el el log.

no existe la base de datos «c»

 

Con que usuario estas ejecutando el script?

 

También añade esta línea 

 

echo “pg_dump -v -F c -U postgres $index | gzip >
$ARCHIVO\"/$index-$DATE\".backup.gz” >> /tmp/respaldo.log

 

antes de la línea que hace el backup para que guarde en el fichero
/tmp/respaldo.log el comando que realmente se ejecuta y configura el crond
para que ejecute el script.

 

Saludos


 <http://www.uci.cu/> Description: Image removed by sender.


 

 <http://www.uci.cu/> Description: Image removed by sender.

 

 

 <http://www.uci.cu/> 

 

<<image001.jpg>>

Responder a