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.
Automatizar la exportación de tus bases de datos tiene muchas ventajas:
En este tutorial, utilizaremos herramientas comunes de Linux que nos ayudarán a realizar la automatización: mysqldump
, bash
y cron
.
Antes de empezar, asegúrate de tener lo siguiente:
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;
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
Con chmod
asignale permisos de ejecución al script:
chmod +x /ruta/del/script/backup_mysql.sh
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
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
Te menciono algunas recomendaciones que podrías considerar para mejorar la seguridad de tus respaldos:
.my.cnf
con permisos restringidos para evitar exponer tu contraseña en el script si es que este es accesible por otros usuarios.gpg
para cifrar los respaldos, sobre todo si son datos sensible y críticos.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.