Re:

From: MIguel Ángel Villagómez <mvillagomez(at)sayab(dot)com(dot)mx>
To: kervin licett <kerljose(at)gmail(dot)com>
Cc: Lista - PostgreSQL <pgsql-es-ayuda(at)postgresql(dot)org>
Subject: Re:
Date: 2008-11-25 18:16:07
Message-ID: 1227636967.4848.17.camel@sayab-w03.sayab
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

El mar, 25-11-2008 a las 15:33 +0000, kervin licett escribió:
> Quien me puede ayudar a hacer un respaldo automaticamente con
> postgres, se que se trabaja con administracion de tareas algo llamado
> cron de manera que respalde toda la informacion en un hora, y el dia
> en especifico....El problema es que no he conseguido un ejemplo que me
> ayude mucho

Creo que lo que tu quieres es el script, así que te doy una pedazo del
que tengo, a modo de ejemplo:

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

#!/bin/sh

# ******************************************** #
# ******** Variables para PostgreSQL ********* #
# ******************************************** #

export POSTGRESQL_MKDIR=`date +[%d_%m_%y]`
export POSTGRESQL_LOG=`date +[%d_%m_%y]%Hhrs_%Mmin`
export POSTGRESQL_HOME='/usr/local/pgsql'
export POSTGRESQL_RESP='/home/RespaldosBD'

# ******************************************** #
# ******* Variables para Multiprocesos ******* #
# ******************************************** #

export HOME_DATE=`date +[%d_%m_%y]%Hhrs_%Mmin`
export HOME_LOGS="/usr/local/procesos/Logs"

# ******************************************** #
# ****************** Run ********************* #
# ******************************************** #

echo "-- Checando Carpetas [ `date` ] --" > "$HOME_LOGS/Log$HOME_DATE"
# -- PostgreSQL -- #
if [ -e $POSTGRESQL_RESP ]
then
# -- Respaldo historico --
if [ ! -e $POSTGRESQL_RESP/$POSTGRESQL_MKDIR ]
then
mkdir $POSTGRESQL_RESP/$POSTGRESQL_MKDIR
fi
else
mkdir $POSTGRESQL_RESP
fi

echo "-- Respaldando Bases [ `date` ] --" >> "$HOME_LOGS/Log$HOME_DATE"
cd $POSTGRESQL_HOME/bin
for BASE in `./psql -c "SELECT datname FROM pg_database WHERE datname
NOT IN ('postgres', 'template0', 'template1') ORDER BY datname" -d
postgres -h localhost -U postgres | head -n -2 | tail -n +3 | cut -d ' '
-f 2`
do
echo "Respaldando $BASE" >> "$HOME_LOGS/Log$HOME_DATE"
./pg_dump -h localhost -U postgres $BASE >
$POSTGRESQL_RESP/$POSTGRESQL_MKDIR/$BASE-$POSTGRESQL_LOG.out
gzip $POSTGRESQL_RESP/$POSTGRESQL_MKDIR/$BASE-$POSTGRESQL_LOG.out
done
echo "-- Respaldos de Bases de Datos Finalizado --" >> "$HOME_LOGS/Log
$HOME_DATE"
# -- PostgreSQL -- #

echo " " >> "$HOME_LOGS/Log$HOME_DATE"
echo "Listo." >> "$HOME_LOGS/Log$HOME_DATE"

exit 0

-----------------------------------
-----------------------------------
Esto es para linux claro esta.
Para manejar el cron basta con poner el simple comando:
crontab -u #usuario" -e
Con esto modificaras el archivo para indicarle cuando respaldar y dentro
del mismo podrás poner la configuración de cuando disparar el script, un
ejemplo de ello sería:

# m h dom mon dow command
0 3 * * * /usr/local/procesos/Multiprocesos.sh

Multiprocesos es el nombre de mi archivo y como verás lo disparo a las 3
de la madrugada todos los días.

Espero que esto si te sirva de ejemplo (aunque ya esta casi todo
echo :D).

In response to

  • at 2008-11-24 20:03:08 from kervin licett

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Ernesto Lozano 2008-11-25 18:19:41 Re: PG Day
Previous Message Alvaro Herrera 2008-11-25 18:14:26 Re: PG Day