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

--
TIP 7: no olvides aumentar la configuraci�n del "free space map"

Responder a