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).
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 |