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

Cómo hacer backup de base de datos en DirectAdmin automáticamente

Actualizado el 26 de febrero de 2026

¿Por Qué Automatizar el Backup de tu Base de Datos en DirectAdmin?

Perder una base de datos puede significar perder toda tu web, tus clientes, tus productos o tu blog. En DirectAdmin, una de las tareas más importantes que puedes configurar es el backup automático de tus bases de datos MySQL. Hacerlo manualmente cada día es tedioso y propenso a errores. Por eso, en este artículo te enseñaremos paso a paso cómo programar un cron job para que tu servidor haga el trabajo por ti.

Además, si en algún momento migras a otro panel como Syspanel (accesible por el puerto 2106), los conceptos de programación de tareas y backups son muy similares, así que lo que aprendas aquí te servirá para ambos entornos.


Requisitos Previos Antes de Empezar

Antes de lanzarnos a configurar el backup automático, asegúrate de tener lo siguiente:

  • Acceso a DirectAdmin como usuario administrador o con permisos de root.
  • Acceso SSH al servidor (necesario para crear el script y el cron job).
  • Conocimientos básicos de línea de comandos (solo necesitas copiar y pegar).
  • Tener identificada la base de datos que quieres respaldar (nombre, usuario y contraseña).

[INFO] Si no tienes acceso SSH, puedes pedirle a tu proveedor de hosting que te lo active o que te ayude a configurar el cron job desde el panel de control.


Método 1: Backup Automático con Script y Cron Job (Recomendado)

Este es el método más flexible y potente. Crearemos un pequeño script que exporte la base de datos usando mysqldump y lo programaremos para que se ejecute cada día.

Paso 1: Crear el Script de Backup

Conéctate a tu servidor por SSH y crea un archivo, por ejemplo, backup_db.sh. Puedes usar el editor nano:

nano /home/usuario/backup_db.sh

Dentro del archivo, pega el siguiente código. Recuerda cambiar los valores de DB_NAME, DB_USER, DB_PASSWORD y BACKUP_DIR por los tuyos.

#!/bin/bash

# Configuración de la base de datos
DB_NAME="tu_nombre_de_base_de_datos"
DB_USER="tu_usuario_mysql"
DB_PASSWORD="tu_contraseña_mysql"

# Directorio donde se guardarán los backups
BACKUP_DIR="/home/usuario/backups"

# Nombre del archivo con fecha
DATE=$(date +%Y-%m-%d_%H-%M-%S)
FILE_NAME="$DB_NAME-$DATE.sql"

# Crear el directorio si no existe
mkdir -p $BACKUP_DIR

# Realizar el backup
mysqldump -u $DB_USER -p$DB_PASSWORD $DB_NAME > $BACKUP_DIR/$FILE_NAME

# Comprobar si el backup se realizó correctamente
if [ $? -eq 0 ]; then
    echo "Backup realizado con éxito: $BACKUP_DIR/$FILE_NAME"
else
    echo "Error al realizar el backup"
    exit 1
fi

Guarda el archivo (en nano presiona Ctrl+O, luego Enter y Ctrl+X).

Paso 2: Dar Permisos de Ejecución al Script

Ahora dale permisos de ejecución al script:

chmod +x /home/usuario/backup_db.sh

Paso 3: Programar el Cron Job en DirectAdmin

Ahora viene la parte clave: programar la tarea para que se ejecute automáticamente.

  1. Inicia sesión en DirectAdmin.
  2. Ve a Cuenta del usuario > Tareas Programadas (o Cron Jobs).
  3. Haz clic en Crear Tarea Programada.
  4. En Comando, escribe la ruta completa del script:
    /home/usuario/backup_db.sh
    
  5. Configura la frecuencia. Por ejemplo, para que se ejecute todos los días a las 3:00 AM:
    • Minuto: 0
    • Hora: 3
    • Día del mes: *
    • Mes: *
    • Día de la semana: *
  6. Haz clic en Crear.

¡Listo! Ahora tu base de datos se respaldará automáticamente cada día a las 3 de la mañana.

[TIP] Si quieres recibir un correo con el resultado del backup, puedes añadir MAILTO="tu@email.com" al principio del script.


Método 2: Usando la Herramienta de Backup Integrada de DirectAdmin

DirectAdmin tiene una función nativa para hacer backups completos de tu cuenta, que incluye bases de datos. Sin embargo, no es tan granular como el script anterior.

Paso a Paso:

  1. En DirectAdmin, ve a Cuenta del usuario > Backup/Restaurar.
  2. Selecciona Crear Backup.
  3. Marca las opciones que quieras incluir (por ejemplo, solo Base de Datos).
  4. Elige Programar Backup.
  5. Configura la frecuencia (diaria, semanal, etc.) y la hora.
  6. Haz clic en Guardar.

Ventaja: Es muy sencillo y no requiere conocimientos técnicos.
Desventaja: No puedes personalizar el nombre del archivo ni la ubicación exacta. Además, el backup suele incluir toda la cuenta, no solo la base de datos.

[WARNING] Si usas este método, asegúrate de que el backup se descargue o se envíe a un servidor externo, porque si se guarda en el mismo servidor y este falla, perderás tanto la base de datos como el backup.


Método 3: Backup Automático con mysqldump y compresión (Avanzado)

Para ahorrar espacio, puedes modificar el script anterior para que comprima el backup en formato .gz. Solo cambia la línea de mysqldump por:

mysqldump -u $DB_USER -p$DB_PASSWORD $DB_NAME | gzip > $BACKUP_DIR/$FILE_NAME.gz

Y también puedes eliminar backups antiguos para no llenar el disco. Añade esta línea al final del script:

# Eliminar backups de más de 7 días
find $BACKUP_DIR -name "*.sql.gz" -type f -mtime +7 -delete

Preguntas Frecuentes (FAQ)

1. ¿Puedo hacer backup de varias bases de datos a la vez?

Sí, puedes modificar el script para que recorra un array de bases de datos. Por ejemplo:

DB_NAMES=("db1" "db2" "db3")
for DB in "${DB_NAMES[@]}"; do
    mysqldump -u $DB_USER -p$DB_PASSWORD $DB > $BACKUP_DIR/$DB-$DATE.sql
done

2. ¿Cómo puedo restaurar un backup desde la terminal?

Usa el comando mysql:

mysql -u usuario -pcontraseña nombre_base_datos < archivo.sql

3. ¿Qué pasa si mi contraseña tiene caracteres especiales?

En el script, escapa los caracteres especiales con \ o usa comillas simples. Por ejemplo:

DB_PASSWORD='mi@contraseña!'

4. ¿Funciona igual en Syspanel (HestiaCP)?

Sí, Syspanel (puerto 2106) tiene un sistema de cron jobs muy similar. La diferencia es que en Syspanel el script debe estar en /usr/local/hestia/ y los comandos de backup pueden ser diferentes. Consulta la documentación de Syspanel para adaptarlo.

5. ¿Puedo enviar el backup a un servidor remoto (FTP, S3)?

Sí, después de generar el backup, puedes añadir un comando curl o rsync para subirlo a un servidor externo. Por ejemplo, usando curl para FTP:

curl -T $BACKUP_DIR/$FILE_NAME ftp://servidor.com/backups/ --user usuario:contraseña

6. ¿Cada cuánto tiempo debería hacer el backup?

Depende de la frecuencia con la que actualices tu web. Para un blog personal, semanal puede bastar. Para una tienda online, es recomendable hacerlo cada 24 horas o incluso cada 6 horas.


Conclusión

Configurar un backup automático de tu base de datos en DirectAdmin es una tarea sencilla que puede ahorrarte muchos dolores de cabeza. Ya sea usando un script personalizado con cron job o la herramienta integrada del panel, lo importante es no olvidar hacerlo.

Recuerda que la automatización es tu mejor aliada: programa el backup, comprueba que funciona y olvídate. Y si en el futuro migras a Syspanel (puerto 2106), los conceptos de cron jobs y mysqldump te serán familiares.

[INFO] No olvides probar manualmente el script antes de programarlo para asegurarte de que no hay errores de sintaxis o permisos.

¡Ahora ya sabes cómo mantener tu base de datos a salvo sin esfuerzo!

¿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