Script de Backup postgreSQL

Hoy les regalo mi script de backup para postgreSQL  y el cron, el cual realiza un backup en la tarde y otro antes de media noche, este script lo he usado en producción sin problema.

No olviden cambiar en el script donde dice  Nombre_Base_de_Datos por el nombre de la db a la cual le realizarán el backup.

SCRIPT:

#!/usr/bin/env bash
# Named: backup
# Author: Jorge Alonso Toro
# jolthgs@gmail.com, jolth@esdebian.org
#

DATE=$(date +%Y-%m-%d)

HORA=`date | cut -d’ ‘ -f 4 | cut -d: -f 1`

if [ $HORA -ne 23 ]; then
pg_dump -f /home/postgres/bk-DB-$DATE-1.sql Nombre_Base_de_Datos
pg_dump -f /home/postgres/bk-test-$DATE-1.sql test
tar -czf bk-db-$DATE-1.tar.gz bk-*.sql
else
pg_dump -f /home/postgres/bk-DB-$DATE-2.sql Nombre_Base_de_Datos
pg_dump -f /home/postgres/bk-test-$DATE-2.sql test
tar -czf bk-db-$DATE-2.tar.gz bk-*.sql
fi

rm -rf bk-*.sql

CRON:

# /etc/crontab: system-wide crontab
# Unlike any other crontab you don’t have to run the `crontab’
# command to install the new version when you edit this file
# and files in /etc/cron.d. These files also have username fields,
# that none of the other crontabs do.
# Author: Jorge Alonso Toro
# jolthgs@gmail.com, jolth@esdebian.orgSHELL=/bin/sh
PATH=/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin
DATE=$(date +%Y-%m-%d)

#
# BK DB tarde
13 13    * * *    root su – postgres /home/postgres/backup

# BK DB Noche
2 23    * * *    root su – postgres /home/postgres/backup

Recuerden dar permisos de ejecución a nuestro script de backup: /home/postgres/backup.

$ chmod 740 /home/postgres/backup

Si necesitan un script para backups para una DB que tenga usuario y contraseña pueden usar algo como esto:

#!/usr/bin/env bash
#
#

export PGUSER=’userdb’
export PGPASSWORD=’xxxxxxxxxxx’

# backup
pg_dump -i -F c -b -v -f /var/lib/postgresql/BK/backup-$(date +%R_%d-%m-%Y).bk midb

unset PGUSER
unset PGPASSWORD

Saludos y espero que les sea de ayuda.

Jolth

Anuncios

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s