domingo, 27 de enero de 2013

Backup programado en postgresql


Crear un scripts en Ubuntu un backup en Postgresql 9.1 y que guarde los backups de los últimos 7 días.

1. Abrir nuestro editor de texto favorito y escribir lo siguiente:

#!/bin/sh

# variables de fechas
fecha=`date +%d-%m-%y`
fecha_antes=`date +%d-%m-%y --date='7 days ago'`

#ejecutando el comando de backup
/usr/bin/pg_dump --host localhost --port 5432 --username "postgres" --role "postgres" --no-password  --format custom --blobs --encoding UTF8 --verbose --file "/home/gilberto/core_$fecha.backup" "core"

#borrando los archivos de 7 días antes
rm -f /opt/backup/dbgbi_$fecha_antes.backup 

2. Guardamos el archivo

3. Le damos permisos de super usuario al archivo, para esto abrimos el terminal
sudo chmod 777 /home/gilberto/dbbackup

4. Ahora programamos la tarea de ejecutar el script todos los días a una hora determinada.
Para esto escribimos lo siguiente en el terminal:

sudo nano /etc/crontab

Luego añadimos la siguiente linea

00 01   * * *   root    /home/gilberto/dbbackup > /dev/null 2>&1

Donde 00 son los minutos 01 la 1 de la mañana si queremos que la tarea se realice a las 12:30 medio dia seria de la siguiente manera

30 12   * * *   root    /home/gilberto/dbbackup > /dev/null 2>&1