Backups MySQL con Backupninja
Introducción
En la era digital actual, las bases de datos son el núcleo del almacenamiento y la gestión de información en todo tipo de organizaciones. Desde pequeñas empresas hasta grandes corporaciones, contienen datos vitales para el funcionamiento diario y el éxito a largo plazo.
Por ello es fundamental contar con una estrategia de backups que garantice la protección contra pérdidas, facilite la recuperación de errores y cumpla con la normativa. Además, las copias de seguridad permiten crear entornos de desarrollo y pruebas realistas, sin comprometer la base de producción.
En este tutorial veremos cómo desplegar un servicio de backups automatizados con Backupninja en Debian 11.
Requisitos
- Una máquina con Debian 11.
- Una base de datos MySQL ya instalada.
- Opcionalmente, phpMyAdmin para administración visual.
Instalación de Backupninja
Instalamos el paquete desde los repositorios oficiales:
apt update
apt install backupninja -y
Verificamos la instalación:
backupninja --version
Al instalarse se generan varios archivos clave:
/etc/backupninja.conf→ Configuración global./etc/backup.d/→ Directorio donde definiremos las tareas./etc/cron.d/backupninja→ Cron job que ejecuta backupninja cada hora.
Configuración de la tarea
Creamos el archivo /etc/backup.d/10-daily.mysql con permisos restrictivos:
chmod 700 /etc/backup.d/10-daily.mysql
Contenido de ejemplo:
databases = my_database
backupdir = /var/backups/mysql
hotcopy = no
sqldump = yes
compress = yes
dbhost = IP_DE_TU_SERVIDOR
dbusername = super_user
dbpassword = super_password
when = everyday at 01:00
Instalar cliente MySQL
Backupninja usa mysqldump, por lo que debemos instalar el cliente:
apt install default-mysql-client -y
Ejecución manual
El cron se encargará de lanzar las tareas automáticamente, pero también podemos forzar la ejecución:
backupninja -n
Con debug:
backupninja -n -d
La salida mostrará logs detallados y confirmará si el dump fue exitoso.
Verificación
El backup resultante se almacenará en:
/var/backups/mysql/sqldump/my_database.sql.gz
Comprobar la existencia y tamaño del archivo asegura que la copia se ha realizado correctamente.
Tecnologías utilizadas
Debian 11, Backupninja, MySQL