No recuerdo si había comentado que estaba en plena migración tecnológica laboral, trabajando con el SGBD libre PostgreSQL y el sistema operativo (libre, of course) FreeBSD. Y el primero de los trasteos era simple ¿cómo automatizo los backups? Ya habíamos hablado de este tipo de cuitas alguna vez por aquí, así que vamos a ver cómo con un script, y haciendo uso de Cron, podemos lograrlo:
#!/bin/sh # pgsql backups --datosde conexion db_user="tu_usuario" db_name="tu_base_de_datos" db_dumpdir="/var/backups/carpeta" date_format="`date +%Y-%m-%d.%H:%M`" #ARRIBA CAMBIA LOS EJEMPLOS POR LOS DATOS QUE CORRESPONDAN. # BORRAMOS LOS BACKUPS MÁS VIEJOS # PARA NO SATURAR # EN ESTE CASO, LOS QUE TENGAN MÁS DE # 4 SEMANAS expire_time="+4w" # Begin Script # /usr/local/bin/pg_dump -U $db_user $db_name -f "$db_dumpdir/$db_name-$date_format.pgsql" /usr/bin/find $db_dumpdir -d 1 -Btime $expire_time -delete
Con este ya tenemos un script que nos genera un backup de la base de datos en nuestra carpeta de copias de seguridad y además borra los que tengan más de cuatro semanas, para que no saturemos el disco duro. Y ahora, como dijimos antes, necesitamos Crontab para automatizar la copia. Asumamos que guardamos el script en la dirección /usr/local/scripts/pg_backup.sh, porque somos gente ordenadita (al menos a la hora de organizar discos duros). En nuestro caso ejecutaremos el script cada 6 horas:
# crontab -e * /6 * * * /usr/local/scripts/pg_backup.sh > /dev/null 2>&1
Y con esto ya tenemos la cuestión de automatizar las copias de seguridad solventada.