sábado, 28 de abril de 2012

Script para hacer backup de un motor postgresql

Buscando la forma de copiar todas las bases de datos postgresql para pasarlas a la nueva instalación de Ubuntu me encontré con este script que con ligeras modificaciones quedó en algo así.

#!/bin/bash
#=============================================================================================
# Script Backup Databases PostgreSQL - Tomeu Roig // modificado por Horacio Degiorgi
# =============================================================================================

# Procedimiento de Copia de Seguridad de Servidor de Postgres

## BEGIN CONFIG ##
BACKUP_DIR="/datos/backups/"
USER=postgres
# la siguiente linea permite evitar poner la clave
export PGPASSWORD= clave  
# la siguiente linea permite hacer backup de un host remoto o de localhost
export PGHOST=localhost
FECHA=$(date +%d-%m-%Y)

## END CONFIG ##

if [ ! -d $BACKUP_DIR ]; then
mkdir -p $BACKUP_DIR
fi
#Leemos todas la bases de datos existente en Postgres, para despues realizar la copia una  a una
POSTGRE_DBS=$(psql -U $USER -l | awk '(NR > 2) && (/[a-zA-Z0-9]+[ ]+[|]/) && ( $0 !~ /template[0-9]/) { print $1 }');

#Realizamos la copia de seguridad de cada una de ellas y las guardamos en un directorio de backups


for DB in $POSTGRE_DBS ; do
echo "* Backuping PostgreSQL data from $DB@$HOST ..."
pg_dump -U $USER -Z 5  -f $BACKUP_DIR$DB-$FECHA.gz $DB

######### fin script #############

Los backups que realiza el script quedan en el directorio designado por BACKUP_DIR  y cada uno con su fecha y nombre de base de datos.


No hay comentarios:

Publicar un comentario