Programa para hacer backups en servidor

Crealib Server Backup es un programa que sirve para hacer backups de los sitios web y bbdd de nuestro servidor GNU/Linux.

Me gustaría compartirles mi creación más reciente: CREALIB SERVER BACKUP, o simplemente: «CSB». Trabaja creando archivadores tar con compresión gz y es muy fácil de configurar. Aunque lo programé por una necesidad particular mía, si administras un servidor propio puede que también te sea útil, por eso he decidido compartirlo bajo licencia GPL para que puedas usarlo, modificarlo y compartirlo también.

Programa para hacer backup para servidores Debian.

Enlace para descargar CSB – CREALIB SERVER BACKUP

Compatibilidad
Este programa viene preinstalado en el sistema operativo Quirinux. Instalador y código compatible con Debian, Devuan y derivadas como Ubuntu, Mint, Etertics, etc. No es compatible con Windows, MacOS ni sistemas que utilicen un tipo de paquetes diferente a APT (ejemplo RPM de RedHat)

¿Qué es?

Crealib Server Backup (CSB) es un programa que sirve para realizar copias simples de la carpeta de ficheros de un sitio, su base de datos .sql y su fichero de configuración de virtualhost. Sólo copia, no comprime.

¿Para qué sirve?

Cuando tienes un servidor las copias de seguridad son religión. Existen muchas utilidades, aunque a mi me gusta mantener las cosas lo más simples posibles. No me gusta depender de programas pesados que luego necesito instalar para restaurar las copias que generan. Por eso, CSB es un script muy ligero hecho con Bash y compartirlo es compartir su código, ya que no hace falta compilación alguna. CSB para guardar el contenido más importante de tu servidor y recomiendo que esto lo hagas en un disco distinto al principal y su nombre comienza con Crealib porque así se llama mi servidor y mi nuevo proyecto, aunque esa es otra historia sobre la que les contaré algún otro día.

¿Cómo funciona?

Este programa funciona en modo texto, es decir, no tiene interfaz gráfica, ya que está pensado para servidores y presenta dos modos: manual y automático.

En modo automático, CSB hace un respaldo de todo el contenido de las carpetas donde el servidor tiene almacenados los sitios web -de forma predeterminada estoy hablando de las carpetas que están dentro de /var/www)- y las configuraciones de los virtualhost -los ficheros .conf que stán dentro de /etc/apache2/sites-available– además de las bases de datos, que las exporta y almacena en ficheros .sql

Creando una tarea programada con Cron, CSB realizará esta tarea según la periodicidad que le indiquemos.

En modo manual, en lugar de almacenar todo, CSB nos permite seleccionar cuales son los sitios que queremos almacenar, qué bases de datos y qué ficheros de configuración de virtualhost. Supongamos que tenemos configurado mediante Cron el script para que realice una copia mensual de todo el contenido pero hemos hecho algunas modificaciones en uno de los sitios y necesitaríamos hacer un backup adicional: si ejecutamos el comando en modo automático, no solo almacenara un respaldo del sitio que hemos modificado, sino que guardará todo lo demás, desperdiciando tiempo y gastando disco de puro gusto. Por eso, en ese tipo de situaciones, conviene lanzar CSB en modo manual.

Características principales

  • Comprueba dependencias que necesita, si no están las instala.
  • Guarda los backups en carpetas que crea clasificando en año y mes.
  • Guarda un LOG con un registro de todo lo que hace.

¿Cómo se instala?

Al no ser un binario, más que instalación vamos a necesitar colocarlo en un sitio adecuado y con permisos de ejecución correctos, aunque lo primero que conviene hacer es CONFIGURARLO.

El apartado de CONFIGURACIÓN lo encontraras apenas abras el código con un editor en modo texto como nano, y es muy sencillo de modificar. Vale decir que la configuración, la documentación y el código del programa en sí se encuentran dentro del mismo fichero.

Indicaremos las rutas de las carpetas donde se guardarán los respaldos -recomiendo que estén en un disco distinto al principal- y el LOG:

También en el apartado de configuración necesitaremos indicar las credenciales del usuario root de BBDD:

Hecho esto, lo vamos a convertir en comando, moviéndolo a la carpeta /usr/local/bin con sudo -o con un usuario con permisos de root- quitándole la extensión .sh. Ejemplo:

Ahora vamos a otorgarle permisos adecuados:

Y si queremos que Cron pueda ejecutarlo sin nuestra intervención, podemos añadirlo a sudoers creando un fichero /etc/sudoers.d/backup con el siguiente contenido:

Para crear una tarea programada que lo ejecute, por ejemplo, una vez al mes, abrimos la configuración de cron del usuario root:

Y agregamos la tarea programada:

¿Cómo se usa?

Muy bien, ya tenemos el comando backup configurado y Cron lo ejecutará en modo automático, del mismo modo que podemos ejecutarlo nosotros cuando necesitemos hacer un backup de TODO en un momento fuera del programado, utilizando el comando:

Y si en lugar de respaldar todo preferimos que CSB nos muestre un menú para que podamos elegir, a lo largo de tres maravillosas pantallas retro a todo color, cuales son los sitios, bases de datos y ficheros de configuración de virtualhost que queremos resguardar, basta con añadir el modificador –manual de la siguiente manera:

Si preferimos escribir menos, también funciona así:

Si te resultó interesante este programa, quieres preguntarme algo o sugerirme alguna mejora, te invito a comentar este artículo. Y si te gustaría ver el código fuente, utilizarlo, compartirlo o enviarme alguna Pull Request, aquí te dejo mi enlace a github donde encontrarás más programas que hice:

https://github.com/charliemartinez

Licencia GPLv2
Puedes usar el programa con cualquier propósito, modificarlo y adaptarlo a tus necesidades, redistribuir copias del mismo de forma gratuita o a cambio de un precio y distribuir versiones modificadas de modo que la comunidad se beneficie.

Deja una respuesta

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