🎨 Sysprovider Code
Sysprovider LogoWiki
🇪🇸Hosting español para ecommerce

Cómo respaldar una base de datos MySQL en Syspanel automáticamente

Actualizado el 7 de marzo de 2026

¿Te has preguntado alguna vez qué pasaría si pierdes toda la información de tu sitio web? Un fallo en el servidor, un error humano o un ataque informático pueden borrar meses de trabajo en segundos. Por eso, tener un respaldo automático de tu base de datos MySQL es una de las mejores decisiones que puedes tomar. En este artículo, te explicaré paso a paso cómo configurar backups automáticos en Syspanel (antes conocido como HestiaCP, accesible por el puerto 2106). Usaremos herramientas como cron y un pequeño script para que todo funcione sin que tengas que preocuparte.


¿Por qué es importante respaldar tu base de datos MySQL?

Imagina que tienes un blog, una tienda online o un foro. Toda la información —usuarios, productos, comentarios— está almacenada en una base de datos MySQL. Si se corrompe, podrías perderlo todo. Los backup automáticos te permiten:

  • Recuperar información rápidamente en caso de desastre.
  • Programar copias diarias o semanales sin esfuerzo manual.
  • Ahorrar tiempo al no tener que hacerlo a mano.
  • Tener tranquilidad sabiendo que tus datos están seguros.

Con Syspanel, el proceso es sencillo y puedes automatizarlo completamente usando cron, el programador de tareas de Linux.


Requisitos previos

Antes de empezar, asegúrate de tener lo siguiente:

  • Acceso a Syspanel (puerto 2106) con credenciales de administrador.
  • Una base de datos MySQL creada y funcionando.
  • Acceso SSH al servidor (para editar archivos y configurar el cron).
  • Conocimientos básicos de comandos en Linux (no te preocupes, te guiaré).

[INFO] Si no sabes cómo acceder por SSH, consulta a tu proveedor de hosting o busca "cómo conectar por SSH a mi servidor".


Paso 1: Conectar a tu servidor por SSH

Abre tu terminal (en Windows puedes usar PuTTY, en Mac/Linux la terminal nativa) y conéctate:

ssh usuario@tu-servidor.com

Reemplaza usuario por tu nombre de usuario y tu-servidor.com por la IP o dominio del servidor. Te pedirá la contraseña.


Paso 2: Crear un script de backup para MySQL

Un script es un archivo de texto con comandos que se ejecutan automáticamente. Vamos a crear uno que haga el respaldo.

2.1. Crear el archivo del script

Navega a un directorio seguro, por ejemplo /home/usuario/:

cd /home/usuario/

Crea un archivo llamado backup_mysql.sh:

nano backup_mysql.sh

2.2. Escribir el contenido del script

Pega el siguiente código (ajusta los datos de tu base):

#!/bin/bash
# Configuración
DB_USER="tu_usuario_mysql"
DB_PASSWORD="tu_contraseña_mysql"
DB_NAME="nombre_de_tu_base_de_datos"
BACKUP_DIR="/home/usuario/backups"
DATE=$(date +%Y%m%d_%H%M%S)
BACKUP_FILE="$BACKUP_DIR/$DB_NAME-$DATE.sql"

# Crear directorio si no existe
mkdir -p $BACKUP_DIR

# Realizar el backup
mysqldump -u $DB_USER -p$DB_PASSWORD $DB_NAME > $BACKUP_FILE

# Comprimir para ahorrar espacio
gzip $BACKUP_FILE

# Eliminar backups mayores a 7 días (opcional)
find $BACKUP_DIR -name "*.sql.gz" -type f -mtime +7 -delete

# Mensaje de éxito
echo "Backup completado: $BACKUP_FILE.gz"

[TIP] Si no sabes tus credenciales MySQL, en Syspanel ve a "Bases de Datos", selecciona la tuya y ahí aparecen usuario y contraseña.

2.3. Guardar y dar permisos

Guarda el archivo (en nano: Ctrl+O, luego Enter, después Ctrl+X). Dale permisos de ejecución:

chmod +x backup_mysql.sh

Paso 3: Probar el script manualmente

Antes de automatizarlo, prueba que funcione:

./backup_mysql.sh

Si todo va bien, verás un mensaje como: Backup completado: /home/usuario/backups/miweb-20231001_120000.sql.gz. Revisa que el archivo exista:

ls -la /home/usuario/backups/

[WARNING] Si ves errores como "mysqldump: command not found", instala el cliente MySQL con sudo apt install mysql-client (en Ubuntu/Debian).


Paso 4: Configurar el backup automático con cron

cron es un servicio que ejecuta tareas programadas. Vamos a usarlo para que nuestro script se ejecute automáticamente.

4.1. Editar el crontab

Abre el editor de cron para tu usuario:

crontab -e

Si es la primera vez, te preguntará qué editor usar. Elige nano (opción 1 o 2).

4.2. Añadir la tarea programada

Al final del archivo, agrega una línea como esta para ejecutar el backup todos los días a las 3:00 AM:

0 3 * * * /home/usuario/backup_mysql.sh

Explicación del formato cron:

  • 0 → minuto (0)
  • 3 → hora (3 AM)
  • * → día del mes (todos)
  • * → mes (todos)
  • * → día de la semana (todos)

Otros ejemplos:

  • Cada hora: 0 * * * *
  • Cada lunes a las 2 AM: 0 2 * * 1
  • Cada 12 horas: 0 */12 * * *

Guarda y cierra (en nano: Ctrl+O, Enter, Ctrl+X).

4.3. Verificar que el cron está activo

Lista tus tareas programadas:

crontab -l

Deberías ver la línea que añadiste.

[INFO] Si quieres recibir un correo cuando se ejecute el backup, añade MAILTO="tu@email.com" al inicio del crontab.


Paso 5: Gestionar backups desde Syspanel

Syspanel también tiene herramientas integradas para backups, pero son más limitadas. Para un control total, el método con script y cron es ideal. Sin embargo, puedes:

  • Ver tus bases de datos en la sección "Bases de Datos" del panel.
  • Exportar manualmente desde allí si lo prefieres.
  • Configurar backups del sistema en "Configuración del servidor" (pero no son específicos para MySQL).

[TIP] Combina ambos métodos: usa el script automático para MySQL y el backup completo de Syspanel para archivos del sitio.


Paso 6: Restaurar un backup (lo básico)

Si algún día necesitas recuperar tu base, sigue estos pasos:

  1. Accede a tu servidor por SSH.
  2. Descomprime el archivo: gunzip backup.sql.gz
  3. Restaura con el comando:
    mysql -u tu_usuario -p nombre_base < backup.sql
    
    Te pedirá la contraseña.

También puedes hacerlo desde Syspanel:

  • Ve a "Bases de Datos", selecciona la tuya y usa la opción "Importar".

Preguntas frecuentes (FAQ)

¿Qué hago si no recuerdo la contraseña de MySQL?

En Syspanel, ve a "Bases de Datos", haz clic en la base y verás la opción "Cambiar contraseña". También puedes resetearla desde SSH con:

mysqladmin -u root -p password nueva_contraseña

¿Puedo hacer backups de varias bases de datos?

Sí, modifica el script para que itere sobre una lista. Por ejemplo:

for DB in base1 base2 base3; do
    mysqldump -u $DB_USER -p$DB_PASSWORD $DB > $BACKUP_DIR/$DB-$DATE.sql
done

¿Cuánto espacio ocupan los backups?

Depende del tamaño de tu base. Una base pequeña (menos de 100 MB) ocupará unos pocos MB comprimida. Usa la opción -mtime +7 en el script para eliminar backups viejos y ahorrar espacio.

¿Es seguro guardar la contraseña en el script?

No es lo más seguro, pero para entornos controlados es aceptable. Una alternativa es usar un archivo de configuración con permisos restringidos (por ejemplo, chmod 600) o usar variables de entorno.

¿El backup afecta el rendimiento del sitio?

El comando mysqldump puede ser pesado si la base es grande. Programa los backups en horas de bajo tráfico (como las 3 AM) para minimizar el impacto.

¿Puedo enviar el backup a otro servidor o a la nube?

Sí, añade al script comandos como scp o rsync para copiar el archivo a otro servidor, o usa herramientas como rclone para subirlo a Google Drive, Dropbox, etc.


Conclusión

Ahora ya sabes cómo respaldar una base de datos MySQL en Syspanel automáticamente usando un script y cron. Este método es gratuito, personalizable y te da control total sobre tus backup. No olvides probar el script y verificar que los archivos se generan correctamente.

Recuerda que la prevención es la mejor herramienta contra la pérdida de datos. Configura tu backup hoy y duerme tranquilo.

[WARNING] Siempre guarda una copia de seguridad fuera del servidor (por ejemplo, en tu computadora o en la nube) por si falla el disco duro.

Si tienes dudas, revisa la documentación de Syspanel (puerto 2106) o busca en foros de MySQL. ¡Tu información está a salvo!

¿Necesitas ayuda?Son dos de nuestros técnicos, Agustín y Mikel, y están disponibles para resolver cualquier problema.

Hablar con ellos ahora
Agustín y Mikel