Programar copias de seguridad de Postgresql (CRON + Shell Script + Dropbox)

Generalmente yo no administro los servidores de mis clientes, a pesar de ello a veces me toca hacer las veces de administrador o sugerir ciertas cosas. Una de las cosas que suelo hacer es planificar un script en CRON para que haga una copia de seguridad de la base de datos todos los días y a partir de ahí ya se encargan ellos de hacer lo que consideren oportuno.

Estaba dándole vueltas a este tema cuando se me ocurrió la idea de utilizar alguna nube para sacar las copias fuera del servidor, la cuestión es que había que hacerlo de forma que no tuvieramos problemas de seguridad y privacidad en el proceso. Hay que tener en cuenta que el hecho de  subir nuestros archivos a otro servidor en la nube inherentemente hace que perdamos el control de nuestros datos y eso no podía pasar, ¿la solución? cifrar los datos.

 

Primero  necesitamos programar un script para que vuelque la base de datos a disco y que posteriormente la cifre. El Shell Script que yo utilizo lo he subido a github en un repositorio llamado backupscript, si alguien lo quiere utilizar tiene licencia GPL 3. Una apreciación, yo cifro los datos con GnuPG así que tendréis que tenerlo instalado y generar las claves pública privada para poder utilizarlo. El siguiente paso es utilizar el Shell Script como una tarea de CRON,  esto es sencillo ya que simplemente habrá que copiarlo por ejemplo al cron.daily. Por último tendremos que utlizar alguna herramienta para poder subir las copias a la nube, en este caso yo he utilizado Dropbox por dos motivos, el primero porque el cliente de Dropbox es libre con licencia GPL y el segundo porque proporciona la función de sincronización automática sobre un directorio lo cual significa que inmediatamente después de copiarse el archivo a disco se empieza a sincronizar con la nube.

Tutoriales sobre la instalación del cliente de Dropbox en Gnu/Linux hay muchos en internet así que no voy a explicar esta parte, lo que si quería comentar es que como Dropbox sincroniza sobre el directorio del mismo nombre «Dropbox» del $HOME del usuario y generalmente no vamos a querer dejar los archivos en esa ruta lo que podemos hacer es crear un enlace simbólico para solucionar este problema.

 

Yo lo tengo funcionando desde hace unos días en un servidor de un cliente y la verdad es que va de maravilla.

 

Cheli

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *

Este sitio usa Akismet para reducir el spam. Aprende cómo se procesan los datos de tus comentarios.