Backup automatico de postgresql en CentOS

Todo sistema informático debe contar por seguridad con un sistema de backups automáticos que nos permitan respaldar la información en caso de algún daño en el sistema operativo o hardware. En este caso realizare el ejemplo es un backup automático de postgresql usando CRON como tareas programadas.

Ya en otro post explicare como enviar este backup a otra pc o servidor para completar la seguridad. Primero modificaremos postgresql para que pueda realizar cambios localmente modificar

nano /var/lib/pgsql/9.4/data/pg_hba.conf

si no ubican el archivo pueden usar

locate pg_hba.conf

editar la linea para el acceso local

local     all      all      md5

creamos nuestro archivo backup.sh con permisos 777 en la ruta /home/admin/backup y agregamos las siguientes lineas:

export PGUSER='postgres'
export PGPASSWORD='pgsql123'
FECHA_ACTUAL=`date +%Y-%m-%d`
HORA_ACTUAL=`date +%H:%M`
ARCH_RESP=$FECHA_ACTUAL-$HORA_ACTUAL
pg_dump -Ft bdmuni > /home/admin/backup/backup_$ARCH_RESP.tar
unset PGUSER
unset PGPASSWORD

Podemos agregar otra linea para eliminar backups de mas de 2 dias para ahorrar espacio

find /home/admin/backup/ -name '*.tar' -mtime +2 -exec rm -f {};

guardamos y salimos de backup.sh

Ahora agregamos la tarea programada en CRON:

crontab -e

Agregamos las línea:

0 13 * * * /home/admin/backup/backup.sh

Esta línea permite hacer un backup a las 13 hs con 00 minutos todos los dias de todos los meses de todos los años.

ACTUALIZACIÓN 2017

Si queremos generar un backup con extensión .backup que es menso pesado debemos rempazar en el sh la linea:

pg_dump -Ft bdmuni > /home/admin/backup/backup_$ARCH_RESP.tar

por

pg_dump -Fc bdmuni > /home/admin/backup/backup_$ARCH_RESP.backup

Añadir un comentario

El código HTML se muestra como texto y las direcciones web se transforman automáticamente.

Discusiones sobre el mismo tema

URL de retroenlace : http://creativapixel.com/blog/index.php?trackback/12

50 reads