29 de agosto de 2007

Respaldar Automaticamente toda las base de datos en Postgres...

* Creamos un archivo que va a contener las instrucciones de nuestro scripts:

#!/bin/bash

## BEGIN CONFIG ##
HOST=localhost
FECHA=$(date +%d-%m-%Y)
BACKUP_DIR=/media/backup/postgres/$FECHA
export PGPASSWORD=postgres
## END CONFIG ##

if [ ! -d $BACKUP_DIR ]; then
mkdir -p $BACKUP_DIR
fi

POSTGRE_DBS=$(psql -h $HOST -U postgres -l | awk ' (NR > 2) &&
(/[a-zA-Z0-9]+[ ]+[|]/) && ( $0 !~ /template[0-9]/) { print $1 }');

for DB in $POSTGRE_DBS ; do
echo "* Respaldando las Base de datos en PostgreSQL data de $DB@$HOST..."
# pg_dump -h $HOST -U postgres $DB > $BACKUP_DIR/pg_$DB.sql
# pg_dump -h $HOST -U postgres $DB | bzip2 > /media/backup/postgres/$FECHA"_"$DB.bz2
pg_dump -h $HOST -U postgres $DB | bzip2 > $BACKUP_DIR/$DB.bz2 && echo "OK"

echo -n "Verificando archivo comprimido "$DB".bz2... "
bunzip2 -t $BACKUP_DIR/$DB.bz2 && echo "OK"

done

* Ejecución
:

$ sh archivo


* Explicación:
Automaticamente crea un directorio con la fecha del respaldo con todas las base de datos comprimida.

24 de agosto de 2007


Firefox