Todos los artículos

Backups MySQL con Backupninja

Tiempo de lectura: 1 minuto

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