Respaldo automático de Bases de Datos MySQL/MariaDB con Bash
Aprende a automatizar exportaciones de MySQL/MariaDB en Linux con script en Bash y mantén tus datos seguros.

En esta oportunidad, te mostraré cómo automatizar la exportación de bases de datos MySQL/MariaDB en Linux usando script en Bash. Esto es algo esencial para realizar respaldos regulares y garantizar que tus datos estén seguros y accesibles en caso de fallos o migraciones.
Tabla de contenidos
¿Por qué automatizar las Exportaciones de Bases de Datos?
Automatizar la exportación de tus bases de datos tiene muchas ventajas:
- Respaldo regular: Mantén copias actualizadas sin depender de procesos manuales.
- Seguridad: Protege tus datos contra errores o fallos del sistema.
- Eficiencia: Ahorra tiempo al eliminar tareas repetitivas.
- Integración: Facilita migraciones o análisis en otros entornos.
En este tutorial, utilizaremos herramientas comunes de Linux que nos ayudarán a realizar la automatización: mysqldump, bash y cron.
Requisitos Previos
Antes de empezar, asegúrate de tener lo siguiente:
- Un servidor Linux con MySQL o MariaDB instalado.
- Acceso como usuario con privilegios suficientes para realizar exportaciones.
- Conocimientos básicos de comandos de la terminal y scripts en Bash.
Crear automatización para exportar la base de datos
Crear usuario para realizar respaldo
Aunque esto no es obligatorio, es una muy buena práctica crear y usar un usuario específico para tareas de respaldo. Ejecuta mysql -u root -p en la terminal y crea un usuario en MySQL/MariaDB con permisos limitados, suficiente para poder crear los respaldos de la base de datos.
Nota: recuerda reemplazar usuario_backup por el nombre de usuario que quieras crear y password_usuario con la contraseña que elijas, recuerda usar una contraseña segura:
CREATE USER 'usuario_backup'@'localhost' IDENTIFIED BY 'password_usuario';
GRANT SELECT, LOCK TABLES, SHOW VIEW, EVENT ON *.* TO 'usuario_backup'@'localhost';
FLUSH PRIVILEGES;
Escribir script en bash
Crea un archivo backup_mysql.sh (o el nombre que tu quieras) y pega el siguiente script que exporta una base de datos y la guarda con la fecha correspondiente.
Reemplaza los valores de DB_USER, DB_PASSWORD, DB_NAME y BACkUP_DIR por tu nombre de usuario, contraseña, nombre de la base de datos para respaldar y la ruta donde se guardará:
#!/bin/bash
# Configuración
DB_USER="usuario_backup"
DB_PASSWORD="password_usuario"
DB_NAME="nombre_base_de_datos"
BACKUP_DIR="backup_sql"
DATE=$(date +%d-%m-%Y_%H-%M-%S)
BACKUP_FILE="${BACKUP_DIR}/${DB_NAME}_${DATE}.sql"
# Crear directorio de respaldo si no existe
mkdir -p $BACKUP_DIR
# Exportar la base de datos
mysqldump -u $DB_USER -p$DB_PASSWORD $DB_NAME > $BACKUP_FILE
# Verificar si la exportación fue exitosa
if [ $? -eq 0 ]; then
echo "Respaldo exitoso: $BACKUP_FILE"
else
echo "Error al realizar el respaldo" >&2
fi
Asignar permisos de ejecución al script
Con chmod asignale permisos de ejecución al script:
chmod +x /ruta/del/script/backup_mysql.sh
Probar y ejecutar el script
Ejecuta el script para ver que funcione correctamente y revisa la ruta del respaldo para confirmar que el respaldo se creó correctamente:
bash /ruta/del/script/backup_mysql.sh
Automatizar respaldo con Cron
Usa cron para ejecutar el script automáticamente. Por ejemplo, si quieres ejecutar el respaldo todos los días a las 2 de la madrugada configura el cron de la siguiente forma:
crontab -e
0 2 * * * /ruta/del/script/backup_mysql.sh
Consejos de Seguridad
Te menciono algunas recomendaciones que podrías considerar para mejorar la seguridad de tus respaldos:
- Protege las credenciales: Usa un archivo de configuración
.my.cnfcon permisos restringidos para evitar exponer tu contraseña en el script si es que este es accesible por otros usuarios. - Cifra los respaldos: Considera usar
gpgpara cifrar los respaldos, sobre todo si son datos sensible y críticos. - Respaldo externo: En lugar de crear una copia local, te recomiendo usar un almacenamiento externo como Amazon S3.
Conclusión
Automatizar la exportación de bases de datos MySQL/MariaDB con un script en Bash es una forma sencilla y efectiva de garantizar la seguridad y disponibilidad de tus datos. Con esto ya tienes las herramientas necesarias para implementar este proceso en tu servidor y automatizar respaldos.
Autor: Maxi Zamorano
Para más contenido visita www.maxizamorano.com
Fecha de publicación: 14-12-2024