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"