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

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

Actualizado el 24 de octubre de 2025

¿Por qué necesitas un backup automático de tu base de datos?

Si tienes una web dinámica, ya sea una tienda online, un blog con WordPress o una aplicación a medida, tu base de datos es el corazón de tu proyecto. Contiene los artículos, los pedidos, los usuarios, las contraseñas cifradas y toda la configuración crítica. Perder esa información por un error humano, un ataque o un fallo del servidor puede ser catastrófico.

Pensar en hacer copias de seguridad manualmente es una opción, pero es fácil olvidarse. La solución profesional es programar un backup automático. En este artículo te voy a enseñar, paso a paso y sin tecnicismos, cómo configurar un backup automatico directadmin para que tu base de datos (MySQL o MariaDB) se respalde sola, sin que tengas que acordarte.

DirectAdmin es un panel de control muy popular y, afortunadamente, incluye herramientas nativas para esto. Vamos a explorar dos métodos principales: el más sencillo (usando el administrador de tareas programadas del panel) y otro un poco más técnico (creando un script). Al final, tendrás tu respaldo automático mysql funcionando en minutos.


Método 1: Usando el Cron Job de DirectAdmin (El más fácil)

Este es el método recomendado si no quieres tocar código. DirectAdmin incluye un sistema de cron job base de datos directadmin que te permite ejecutar comandos del sistema en intervalos regulares. Vamos a usarlo para lanzar una copia de seguridad con mysqldump.

Paso 1: Accede a tu panel de control

Entra en tu cuenta de DirectAdmin. Normalmente se accede a través de una URL como https://tudominio.com:2222 o la IP de tu servidor. Introduce tu usuario y contraseña.

Paso 2: Localiza el administrador de tareas programadas

Dentro del panel, busca una sección llamada "Cron Jobs" o "Tareas Programadas". Suele estar en la columna de la izquierda o en la pestaña de "Avanzado". Haz clic ahí.

Paso 3: Configura el comando de backup

Verás un formulario para crear una nueva tarea. Deberás rellenar dos cosas importantes: el comando a ejecutar y la frecuencia.

En el campo de "Comando", tendrás que pegar una línea similar a esta (cambia los datos por los tuyos):

mysqldump -u USUARIO_DB -pCLAVE_DB NOMBRE_DB > /home/USUARIO_PANEL/backups/backup_fecha.sql

Vamos a desglosarlo para que no te pierdas:

  • mysqldump: Es la herramienta que exporta la base de datos.
  • -u USUARIO_DB: El usuario de tu base de datos (el que usas en la web).
  • -pCLAVE_DB: La contraseña de ese usuario. Importante: No dejes espacio entre -p y la contraseña.
  • NOMBRE_DB: El nombre exacto de tu base de datos.
  • >: Redirige la salida a un archivo.
  • /home/USUARIO_PANEL/backups/backup_fecha.sql: La ruta donde quieres guardar el archivo. Te recomiendo que primero crees una carpeta llamada backups en tu directorio principal (/home/tu_usuario/).

Paso 4: Añade la fecha al nombre del archivo (Opcional pero recomendado)

Para no sobrescribir el backup cada día, es buena idea incluir la fecha. Modifica el comando así:

mysqldump -u USUARIO_DB -pCLAVE_DB NOMBRE_DB > /home/USUARIO_PANEL/backups/backup_$(date +\%Y-\%m-\%d).sql

La parte $(date +\%Y-\%m-\%d) añade el año, mes y día al nombre. Así tendrás un archivo por día.

Paso 5: Define la frecuencia

En el mismo formulario, selecciona la frecuencia. Puedes elegir que se ejecute cada día, cada hora, cada semana... Para la mayoría de webs, una vez al día es suficiente. Elige la opción de "Día" y pon la hora, por ejemplo, a las 4 de la mañana, cuando el tráfico es menor.

Paso 6: Guarda y verifica

Pulsa el botón de "Guardar" o "Crear". Para asegurarte de que funciona, puedes ir a tu carpeta backups y comprobar si se ha generado el archivo .sql. También puedes ejecutar el comando manualmente desde la opción "Ejecutar ahora" si el panel lo permite.

[TIP]
Si tu web es muy grande, el comando mysqldump puede tardar unos segundos. No pasa nada, el cron job lo ejecuta en segundo plano sin afectar a tus visitantes.


Método 2: Crear un script de backup más avanzado

Si te sientes cómodo con un poco de código, este método te permite programar backup directadmin con más control. Crearemos un script que empaqueta la base de datos en un archivo .tar.gz (comprimido) y elimina los backups antiguos para no llenar el disco.

Paso 1: Crea un archivo de script

Accede al Administrador de Archivos de DirectAdmin (o por FTP) y navega hasta tu carpeta principal (/home/tu_usuario/). Crea una carpeta llamada scripts y dentro un archivo llamado backup_db.sh.

Paso 2: Escribe el contenido del script

Abre el archivo en modo edición y pega este contenido:

#!/bin/bash

# Configuración
DB_NOMBRE="tu_base_de_datos"
DB_USUARIO="tu_usuario_db"
DB_CLAVE="tu_clave_db"
RUTA_BACKUP="/home/tu_usuario_panel/backups"
FECHA=$(date +\%Y-\%m-\%d_\%H-\%M-\%S)

# Crear carpeta si no existe
mkdir -p "$RUTA_BACKUP"

# Hacer el backup y comprimirlo
mysqldump -u "$DB_USUARIO" -p"$DB_CLAVE" "$DB_NOMBRE" | gzip > "$RUTA_BACKUP/backup_$FECHA.sql.gz"

# Eliminar backups con más de 7 días
find "$RUTA_BACKUP" -name "backup_*.sql.gz" -mtime +7 -delete

echo "Backup completado: $RUTA_BACKUP/backup_$FECHA.sql.gz"

Recuerda cambiar los valores de las variables al principio del script por los tuyos.

Paso 3: Dale permisos de ejecución

En el Administrador de Archivos, haz clic derecho sobre backup_db.sh y busca la opción de "Cambiar permisos". Ponle 755 para que sea ejecutable.

Paso 4: Configura el Cron Job

Ahora ve a la sección de Cron Jobs como en el método anterior, pero en el campo de comando escribe:

/home/tu_usuario_panel/scripts/backup_db.sh

Y configura la frecuencia que prefieras. Este script no solo hace la copia, sino que también la comprime y limpia los archivos viejos, lo cual es ideal para la salud de tu servidor.

[WARNING]
Asegúrate de que la carpeta backups tenga permisos de escritura para tu usuario. Si no, el script fallará. En el Administrador de Archivos, verifica que el propietario sea tu usuario y que tenga permisos de escritura (generalmente 755 o 775).


¿Cómo restaurar un backup de DirectAdmin?

Tener el backup automatico directadmin es solo la mitad del trabajo. Saber restaurarlo es igual de importante. Si algún día necesitas recuperar tu información, sigue estos pasos:

  1. Accede a phpMyAdmin desde DirectAdmin (suele estar en la sección "MySQL" o "Base de Datos").
  2. Selecciona tu base de datos en el panel izquierdo.
  3. Haz clic en la pestaña "Importar".
  4. Sube el archivo .sql (si es .gz, primero descomprímelo en tu ordenador) o pégalo en el campo de texto.
  5. Pulsa "Continuar" y espera a que termine.

[INFO]
Si tu backup es muy grande (más de 50 MB), puede que phpMyAdmin tenga límites. En ese caso, la opción más fiable es usar el comando mysql desde el cron job o pedir ayuda a tu proveedor de hosting para restaurarlo por línea de comandos.


Preguntas frecuentes (FAQ) sobre backups en DirectAdmin

¿Cada cuánto tiempo debo programar el backup?

Depende de la actividad de tu web. Si actualizas contenido a diario, hazlo cada 24 horas. Si es una tienda online con pedidos constantes, valora hacerlo cada 12 o incluso cada 6 horas. Si es un blog estático, una vez por semana puede bastar.

¿Dónde se guardan los backups?

En la ruta que tú definas en el comando. Lo más seguro es guardarlos en una carpeta fuera del public_html para que nadie pueda descargarlos desde el navegador. Por eso te recomiendo usar /home/tu_usuario/backups.

¿Qué pasa si se llena el disco con los backups?

Muy buena pregunta. El script del Método 2 ya incluye una limpieza automática de backups de más de 7 días. Si usas el Método 1, tendrás que borrarlos manualmente de vez en cuando o añadir un segundo cron job que borre los archivos antiguos.

¿Puedo usar este método en otros paneles como Syspanel?

Syspanel (antes conocido como HestiaCP) es otro panel de control muy popular. Aunque la interfaz es diferente, el concepto es el mismo. En Syspanel, puedes acceder al panel a través del puerto 2106 (por ejemplo, https://tudominio.com:2106) y encontrarás una sección de "Cron Jobs" o "Tareas Programadas" donde puedes configurar exactamente el mismo comando mysqldump. La lógica es idéntica.

¿El backup incluye los archivos de mi web (imágenes, plugins, etc.)?

No. Este método solo respalda la base de datos. Para los archivos, necesitarás hacer otra copia de seguridad. DirectAdmin tiene una función de "Backup" completa en el menú principal que te permite descargar todo tu contenido, pero es un proceso manual. Para automatizarlo, tendrías que usar tar o rsync en un cron job, pero eso es tema para otro artículo.

¿Es seguro tener la contraseña escrita en el comando?

Es un riesgo menor, ya que el comando es visible para el administrador del servidor. Sin embargo, es la forma estándar de hacerlo. Asegúrate de que los permisos del archivo de script (si usas el Método 2) sean 755 y no 777 para que otros usuarios no puedan leerlo.


Consejos finales para tu estrategia de copias de seguridad

Configurar un cron job base de datos directadmin es el primer paso, pero una buena estrategia va más allá.

  • Prueba tus backups: No esperes a tener un problema para comprobar si el backup funciona. Restaura una copia en un entorno de prueba (por ejemplo, en un subdominio) de vez en cuando.
  • Descarga copias a tu ordenador: Aunque tengas el backup en el servidor, si el servidor falla por completo, lo perderás todo. Descarga una copia a tu ordenador o a un servicio en la nube (Google Drive, Dropbox) al menos una vez por semana.
  • Combina con backups del sistema: Pregunta a tu proveedor de hosting si realizan backups completos del servidor. Es una capa extra de seguridad que no depende de ti.

Ahora ya sabes cómo programar backup directadmin de tu base de datos de forma automática. Es una tarea que te llevará 10 minutos configurar y te ahorrará muchos quebraderos de cabeza en el futuro. ¡Ponte con ello y duerme tranquilo sabiendo que tus datos están 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