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

Cómo hacer una copia de seguridad de una base de datos en DirectAdmin automáticamente

Actualizado el 9 de junio de 2026

¿Por qué automatizar las copias de seguridad de tu base de datos en DirectAdmin?

Si tienes una web dinámica, ya sea un blog, una tienda online o un foro, tu base de datos (MySQL o MariaDB) es el corazón de tu proyecto. Contiene los artículos, los pedidos, los usuarios y toda la información crítica. Perderla sería un desastre absoluto.

Hacer una copia de seguridad manual es fácil, pero es una tarea que solemos olvidar o posponer. La solución perfecta es automatizar el proceso. Con un cron job backup bien configurado, tu servidor realizará un backup automático MySQL sin que tengas que preocuparte por nada. En esta guía, te enseñaré paso a paso cómo hacerlo en DirectAdmin, de una forma sencilla y sin necesidad de ser un experto en programación.

Entendiendo los conceptos básicos: DirectAdmin, MySQL y Cron Jobs

Antes de ponernos manos a la obra, vamos a aclarar algunos conceptos para que entiendas qué estamos haciendo y por qué.

¿Qué es una copia de seguridad o backup?

Una copia de seguridad es una "foto" de tus datos en un momento específico. Si algo sale mal (un error humano, un hackeo, un fallo del servidor), puedes restaurar esa copia y volver a tener tu web funcionando como antes. Para una base de datos, esto significa exportar toda su estructura y su contenido a un archivo, normalmente un archivo .sql.

¿Qué es DirectAdmin?

DirectAdmin es un panel de control de hosting muy popular. Es la interfaz gráfica que te permite gestionar tus dominios, correos, archivos y, por supuesto, tus bases de datos. Es la herramienta que usaremos para crear el script y el cron job.

¿Qué es un Cron Job?

Un Cron Job es una tarea programada en el servidor. Piensa en él como una alarma que ejecuta un comando o un script en un horario específico. Puede ser cada minuto, cada hora, cada día a las 3 de la mañana, etc. Para nuestro propósito, lo usaremos para ejecutar el script de backup automáticamente.

¿Qué es un Script?

Un script es un archivo de texto que contiene una serie de comandos. En este caso, crearemos un script que le diga a MySQL cómo hacer la copia de seguridad y dónde guardarla. Es el "cerebro" de nuestra automatización.

Preparando el terreno: Acceso a DirectAdmin y datos necesarios

Para empezar, necesitas tener acceso a tu panel de DirectAdmin. Normalmente se accede a través de una URL como https://tu-dominio.com:2222 o https://tu-ip:2222.

[!TIP]
Tip: Si tu hosting utiliza el panel "Syspanel" (antes conocido como HestiaCP), la interfaz es diferente. En ese caso, el acceso se realiza por el puerto 2106 y la gestión de bases de datos está en la sección "Bases de Datos". Este artículo se centra en DirectAdmin, pero la lógica de los scripts y cron jobs es muy similar en ambos.

Necesitarás tener a mano los siguientes datos de la base de datos que quieres respaldar:

  • Nombre de la base de datos: Suelo tener un prefijo, por ejemplo usuario_wpdb.
  • Usuario de la base de datos: Puede ser el mismo que el nombre o uno diferente, por ejemplo usuario_wpuser.
  • Contraseña del usuario de la base de datos: La contraseña asociada a ese usuario.
  • Acceso SSH (opcional pero recomendable): Para poder ocultar la contraseña en un archivo de configuración, aunque podemos hacerlo de forma segura desde el propio panel.

[!WARNING]
Advertencia: Nunca compartas tu contraseña de la base de datos en foros o con terceros. Guárdala en un lugar seguro. Si usas un script, asegúrate de que el archivo que la contiene no sea accesible públicamente desde tu navegador web.

Método 1: El método más fácil usando el "MySQL Backup" de DirectAdmin (Sin scripts)

DirectAdmin tiene una función integrada para hacer copias de seguridad de las bases de datos, pero no es automática. Sin embargo, es la base para entender el segundo método.

  1. Inicia sesión en tu panel de DirectAdmin.
  2. Busca la sección "Gestión de Base de Datos" o "MySQL Management".
  3. Verás una lista de todas tus bases de datos. Al lado de cada una, hay un icono o botón que dice "Download" o "Descargar".
  4. Al hacer clic, DirectAdmin genera un archivo .sql y lo descarga a tu ordenador.

Este método es perfecto para una copia puntual, pero no es práctico para hacerlo a diario. Para automatizarlo, necesitamos crear un script y un cron job, que es lo que veremos a continuación.

Método 2: Creando un script de backup automático MySQL

Este es el método estrella. Crearemos un script que se conectará a la base de datos, hará la copia de seguridad y la guardará en una carpeta privada de tu hosting. Luego, programaremos un cron job para que lo ejecute automáticamente.

Paso 1: Crear la carpeta para los backups

Lo primero es tener un lugar seguro donde guardar los archivos de backup. Lo ideal es que no esté dentro de la carpeta pública de tu web (public_html), porque si alguien adivinara la URL, podría descargarse tus backups.

  1. En DirectAdmin, ve a "Administrador de Archivos" o "File Manager".
  2. Navega a tu carpeta de usuario (normalmente domains/tudominio.com/ o simplemente tu carpeta de inicio).
  3. Crea una nueva carpeta llamada backups o db_backups. Nosotros usaremos backups.

[!WARNING]
Advertencia: Asegúrate de que esta carpeta no esté dentro de public_html. Si la creas en la raíz de tu cuenta, estará protegida de forma predeterminada. Si no tienes acceso a la raíz, créala dentro de domains/tudominio.com/backups, pero nunca dentro de public_html.

Paso 2: Crear el script de backup

Ahora crearemos el script. Un script de shell (.sh) es un archivo de texto con comandos.

  1. Dentro de la carpeta backups, crea un nuevo archivo. Puedes llamarlo backup_db.sh.
  2. Haz clic derecho sobre el archivo y selecciona "Editar" o "Edit".
  3. Copia y pega el siguiente código, reemplazando los valores con los tuyos:
#!/bin/bash

# --- CONFIGURACIÓN ---
# Datos de la base de datos
DB_NAME="tu_nombre_de_base_de_datos"
DB_USER="tu_usuario_de_base_de_datos"
DB_PASS="tu_contraseña_de_base_de_datos"

# Datos del servidor y archivos
DB_HOST="localhost"
DATE=$(date +"%Y-%m-%d_%H-%M-%S")
BACKUP_DIR="/home/tu_usuario/domains/tu-dominio.com/backups"
BACKUP_FILE="$BACKUP_DIR/$DB_NAME-$DATE.sql"

# --- COMANDOS DE RESPALDO ---
echo "Iniciando el backup de la base de datos: $DB_NAME"

# Usamos mysqldump para exportar la base de datos
mysqldump --opt --host=$DB_HOST --user=$DB_USER --password=$DB_PASS $DB_NAME > $BACKUP_FILE

# Verificamos si el comando anterior se ejecutó correctamente
if [ $? -eq 0 ]; then
    echo "Backup completado con éxito: $BACKUP_FILE"
else
    echo "Error en el backup. Revisa los datos de conexión."
    # Si hay un error, borramos el archivo vacío que se pudo haber creado
    rm -f $BACKUP_FILE
fi

# Opcional: Borrar backups antiguos (por ejemplo, los que tengan más de 7 días)
find $BACKUP_DIR -type f -name "*.sql" -mtime +7 -exec rm {} \;

echo "Proceso finalizado."

[!INFO]
Información importante: Reemplaza tu_nombre_de_base_de_datos, tu_usuario_de_base_de_datos, tu_contraseña_de_base_de_datos, /home/tu_usuario/domains/tu-dominio.com/backups con tus datos reales. La ruta de BACKUP_DIR es la ruta absoluta a la carpeta que creaste en el paso 1. Puedes encontrarla en el administrador de archivos de DirectAdmin.

Paso 3: Hacer ejecutable el script

El script no se ejecutará si no tiene permisos de ejecución.

  1. En el Administrador de Archivos, selecciona el archivo backup_db.sh.
  2. Haz clic en "Cambiar Permisos" o "Change Permissions".
  3. Asegúrate de que la casilla "Ejecutar" (Execute) esté marcada para el usuario (Owner). Puedes poner 750 o 755 en el cuadro de texto para simplificar.
  4. Guarda los cambios.

Paso 4: Configurar el Cron Job en DirectAdmin

Ahora viene la magia. Programaremos la tarea.

  1. En DirectAdmin, busca la sección "Tareas Programadas" o "Cron Jobs".
  2. Haz clic en "Crear Cron Job" o "Create Cron Job".
  3. Se te pedirán dos cosas:
    • Comando a ejecutar: Aquí pondremos la ruta a nuestro script. Por ejemplo: /home/tu_usuario/domains/tu-dominio.com/backups/backup_db.sh
    • Horario: Define cada cuándo quieres que se ejecute. Te recomiendo hacerlo una vez al día, en un horario de baja afluencia (por ejemplo, a las 4:00 AM).
      • Minuto: 0
      • Hora: 4
      • Día del mes: * (todos los días)
      • Mes: * (todos los meses)
      • Día de la semana: * (todos los días)

[!TIP]
Tip: DirectAdmin te permite elegir entre "Common Settings" (configuraciones comunes) y "Custom Settings" (configuraciones personalizadas). Si no entiendes la notación cron, usa las opciones comunes como "Once a day" (Una vez al día) y especifica la hora.

  1. Haz clic en "Crear" o "Create".

¡Y listo! Ya tienes tu backup automático MySQL funcionando.

Método 3: El método pro - Usar el backup completo de DirectAdmin

DirectAdmin también ofrece una herramienta de backup completa que incluye las bases de datos. Esta es la opción más robusta, ya que respalda todo tu sitio (archivos, correos, configuraciones, etc.).

  1. En DirectAdmin, ve a "Gestión de Copias de Seguridad" o "Backup/Restore".
  2. Se te presentan dos opciones: "Crear Backup" (Create Backup) y "Restaurar Backup" (Restore Backup).
  3. En la sección de "Crear Backup", tienes dos tipos:
    • Backup Completo: Crea un archivo .tar.gz con todo tu hosting.
    • Backup de Usuario: Similar al anterior, pero más específico para tu cuenta.
  4. Puedes seleccionar qué elementos incluir (bases de datos, correos, etc.). Asegúrate de que la casilla de "Bases de Datos MySQL" esté marcada.
  5. Haz clic en "Crear Backup".
  6. DirectAdmin generará el archivo y lo pondrá en tu carpeta backups del sistema (no la que creamos nosotros, sino una interna del panel).

Este método es excelente para hacer un backup completo y programado, pero el archivo suele ser mucho más grande que un simple .sql. Para un backup diario de solo la base de datos, el método del script es más eficiente.

Cómo restaurar una base de datos desde tu backup

Saber hacer backups es solo la mitad del trabajo. Saber restaurarlos es la otra mitad.

  • Desde phpMyAdmin: Es la forma más común.

    1. Ve a "Base de Datos MySQL" en DirectAdmin y haz clic en "phpMyAdmin".
    2. Selecciona tu base de datos en el panel izquierdo.
    3. Haz clic en la pestaña "Importar".
    4. Haz clic en "Elegir archivo" y selecciona tu archivo .sql.
    5. Haz clic en "Continuar" o "Ejecutar". ¡Listo!
  • Desde la línea de comandos (SSH): Si tienes acceso SSH, puedes usar el comando:

    mysql -u TU_USUARIO -p TU_BASE_DE_DATOS < /ruta/a/tu/backup.sql
    

    Te pedirá la contraseña y restaurará los datos.

[!WARNING]
Advertencia: Al restaurar, sobrescribirás los datos actuales de la base de datos. Asegúrate de que es lo que quieres hacer y de que estás importando en la base de datos correcta.

Preguntas Frecuentes (FAQ)

¿Cada cuánto tiempo debo hacer una copia de seguridad?

Depende de la actividad de tu web. Si publicas contenido a diario, lo ideal es un backup diario. Si es un sitio estático, quizás con uno semanal sea suficiente. La frecuencia la decides tú con el cron job.

¿Cuántas copias de seguridad debo mantener?

Es buena práctica mantener al menos las últimas 7 copias (una por día). En el script te dejé una línea de código que borra automáticamente los backups de más de 7 días. Así no se llena tu espacio de almacenamiento.

¿Qué es mysqldump?

mysqldump es una herramienta de línea de comandos que viene incluida con MySQL/MariaDB. Su función principal es exportar una base de datos a un archivo de texto con comandos SQL. Es la herramienta estándar para este propósito.

¿Qué hago si el cron job no funciona?

Revisa lo siguiente:

  1. Permisos del script: Asegúrate de que el archivo backup_db.sh tiene permisos de ejecución (755 o 750).
  2. Rutas: Verifica que la ruta al script en el cron job es correcta y que la ruta de BACKUP_DIR en el script también es correcta.
  3. Datos de conexión: Comprueba que el nombre de usuario y la contraseña de la base de datos son correctos.
  4. Errores en el script: Puedes ejecutar el script manualmente desde el administrador de archivos (si tiene esa opción) o por SSH para ver si arroja algún error.

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

Sí, puedes crear un script que contenga varios comandos mysqldump para diferentes bases de datos, o puedes usar un bucle para que recorra una lista de bases de datos. La idea es la misma.

Si mi hosting usa "Syspanel", ¿este tutorial me sirve?

El tutorial está hecho específicamente para DirectAdmin. Si usas Syspanel (puerto 2106), la interfaz es diferente. Sin embargo, los conceptos de crear un script y un cron job son universales. En Syspanel, la sección de "Cron Jobs" se llama "Tareas Programadas" y la gestión de bases de datos está en "Bases de Datos". La lógica del script es exactamente la misma.

Conclusión: La tranquilidad de tener un backup automático

Configurar un cron job backup en DirectAdmin es una tarea sencilla que te ahorrará muchos quebraderos de cabeza en el futuro. Con un pequeño script y una tarea programada, tendrás la seguridad de que tus datos están a salvo sin tener que acordarte de hacerlo manualmente.

Tu copia de seguridad DirectAdmin automática no es un lujo, es una necesidad. Dedica unos minutos a configurarla hoy y duerme tranquilo sabiendo que tu negocio, tu blog o tu proyecto está protegido. Si tienes algún problema, recuerda que puedes pedir ayuda a tu proveedor de hosting, pero con esta guía, deberías poder hacerlo tú mismo sin problemas. ¡Buena suerte!

¿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