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

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

Actualizado el 9 de diciembre de 2025

¿Por qué necesitas una copia de seguridad automática de tu base de datos?

Si tienes una web dinámica (como WordPress, Joomla o una tienda online), tu base de datos es el corazón de tu proyecto. Contiene tus artículos, productos, clientes, pedidos y configuraciones. Perderla por un error humano, un ataque o un fallo del servidor puede ser catastrófico.

Hacer un backup base de datos directadmin manualmente es un buen hábito, pero confiar en tu memoria es arriesgado. La solución profesional es automatizar este proceso. Así, cada día, semana o mes, tu sistema generará una copia seguridad automatica sin que tengas que hacer nada.

En esta guía, voy a explicarte paso a paso cómo configurar un cron job mysql directadmin para que tus copias se generen solas. No necesitas ser un experto, solo seguir las instrucciones con calma.

¿Qué es un Cron Job y por qué es la clave?

Un Cron Job es un programador de tareas que tiene tu servidor. Piénsalo como una alarma que se activa a una hora concreta y ejecuta un comando. En nuestro caso, ese comando será el que exporte tu base de datos a un archivo.

La ventaja es que el servidor nunca se olvida, no se cansa y funciona las 24 horas. Configurarlo una vez te dará tranquilidad durante meses o años.

Requisitos previos antes de empezar

Antes de meternos en materia, asegúrate de tener esto a mano:

  1. Acceso a DirectAdmin: Necesitas las credenciales de tu panel de control. Normalmente se accede desde https://tu-dominio.com:2222.
  2. El nombre de tu base de datos: Si no lo recuerdas, entra en la sección "MySQL Management" dentro de DirectAdmin.
  3. El usuario y la contraseña de la base de datos: A veces es la misma que la de tu panel, pero no siempre. La puedes ver en la misma sección de gestión de MySQL.
  4. Una carpeta para guardar los backups: Lo ideal es que no esté dentro de la carpeta pública de tu web (public_html), porque si alguien adivina la URL, podría descargar tu base de datos. Te recomiendo crear una carpeta llamada backups en tu directorio principal (fuera de public_html).

Paso 1: Crear la carpeta de backups segura

Primero, vamos a crear un espacio seguro donde se guardarán los archivos. Esto es fundamental para que tu información no sea accesible desde internet.

  1. Entra en tu panel de DirectAdmin.
  2. Busca la sección "File Manager" (Administrador de archivos).
  3. Te llevará a tu directorio principal (normalmente /home/tu_usuario). Verás una carpeta llamada public_html, domains o similar.
  4. Haz clic en el botón "Create Folder" (Crear carpeta).
  5. Nómbrala backups (sin espacios ni caracteres raros).
  6. Asegúrate de que esta carpeta esté al mismo nivel que public_html, no dentro de ella.

[WARNING]: No guardes nunca los backups dentro de public_html. Si lo haces, cualquiera podría acceder a ellos escribiendo tudominio.com/backups. Esto es un agujero de seguridad grave.

Paso 2: Encontrar los datos exactos de tu base de datos

Para que el comando funcione, necesitas el nombre exacto de la base de datos y el usuario. En DirectAdmin, los nombres suelen llevar un prefijo con tu nombre de usuario.

  1. En el panel principal, busca la sección "MySQL Management".
  2. Verás una lista con tus bases de datos. Anota el nombre exacto (ej. usuario_miweb).
  3. Haz clic en el icono de "editar" o "lápiz" al lado de la base de datos para ver el usuario asignado.
  4. Anota el nombre de usuario (ej. usuario_miweb_user) y ten a mano la contraseña. Si no la recuerdas, puedes cambiarla desde aquí, pero ten cuidado porque si la cambias, tendrás que actualizar también el archivo de configuración de tu web (por ejemplo, el wp-config.php en WordPress).

[INFO]: Si cambias la contraseña de la base de datos, tu web dejará de funcionar hasta que actualices los datos en su archivo de configuración. Te recomiendo no cambiarla si no es estrictamente necesario.

Paso 3: Diseñar el comando de backup perfecto

Ahora viene la parte técnica, pero no te asustes. Vamos a construir el comando que el servidor ejecutará. Lo haremos en dos partes para que sea más fácil de entender.

Parte A: El comando básico de exportación

El programa que usaremos para exportar la base de datos se llama mysqldump. El comando básico es este:

mysqldump -u TU_USUARIO -pTU_CONTRASEÑA NOMBRE_BASE_DATOS > /ruta/a/tu/carpeta/backups/archivo.sql

Vamos a desglosarlo:

  • mysqldump: Es la herramienta que copia la base de datos.
  • -u TU_USUARIO: Especifica el usuario de la base de datos.
  • -pTU_CONTRASEÑA: Especifica la contraseña. IMPORTANTE: No debe haber espacio entre -p y la contraseña.
  • NOMBRE_BASE_DATOS: El nombre exacto que anotaste antes.
  • >: Este símbolo redirige la salida del comando a un archivo.
  • /ruta/a/tu/carpeta/backups/archivo.sql: La ruta absoluta donde se guardará el archivo.

Parte B: Añadir la fecha al nombre del archivo

Si hacemos un backup cada día, necesitamos que el nombre del archivo sea único. Si no, el nuevo sobrescribirá al anterior. Para ello, añadimos la fecha actual al nombre.

mysqldump -u TU_USUARIO -pTU_CONTRASEÑA NOMBRE_BASE_DATOS > /ruta/a/tu/carpeta/backups/backup_$(date +\%Y-\%m-\%d).sql

El $(date +\%Y-\%m-\%d) es un comando que devuelve la fecha en formato año-mes-día (ej. 2025-03-30). Así, el archivo se llamará backup_2025-03-30.sql.

[TIP]: Si quieres guardar la hora también, puedes usar $(date +\%Y-\%m-\%d_\%H-\%M-\%S) para que sea aún más específico.

Paso 4: Configurar el Cron Job en DirectAdmin

Ya tenemos el comando. Ahora vamos a enseñarle a DirectAdmin cuándo ejecutarlo.

  1. En el panel principal, busca la sección "Cron Jobs" (Tareas programadas).

  2. Verás un formulario. En la parte de "Minute", "Hour", "Day", "Month" y "Weekday", puedes dejar * (asterisco) para que se ejecute siempre, o poner valores específicos.

  3. Para un backup diario a las 4:00 AM (hora del servidor), configura así:

    • Minute: 0
    • Hour: 4
    • Day: *
    • Month: *
    • Weekday: *
  4. En el campo de "Command", pega el comando completo que construimos en el Paso 3.

  5. Haz clic en "Create" o "Add Cron Job".

Ejemplo de comando completo:

Si tu usuario es admin, tu base de datos es admin_miweb, tu contraseña es ClaveSecreta123 y tu carpeta de backups está en /home/admin/backups, el comando sería:

mysqldump -u admin_miweb -pClaveSecreta123 admin_miweb > /home/admin/backups/backup_$(date +\%Y-\%m-\%d).sql

[WARNING]: La contraseña en el comando cron es visible para cualquiera que tenga acceso a ver tus tareas programadas. Asegúrate de que tu panel de control esté protegido con una contraseña fuerte.

Paso 5: Probar que todo funciona

No basta con crear el cron y esperar. Debemos verificar que el comando es correcto.

  1. Ve a tu File Manager y entra en la carpeta backups.

  2. Si el cron se ha ejecutado, verás un archivo .sql con la fecha de hoy.

  3. Si no lo ves, puedes probar a ejecutar el comando manualmente. Para ello, ve a la sección "Cron Jobs" y busca un botón que diga "Run" o ejecuta el comando directamente en una sesión SSH si tienes acceso.

  4. Si el archivo se genera, perfecto. Si no, revisa estos puntos:

    • ¿El nombre de la base de datos es correcto?
    • ¿La contraseña es correcta y está pegada a -p sin espacio?
    • ¿La ruta de la carpeta backups es correcta?

[TIP]: Para probar, puedes configurar el cron para que se ejecute cada minuto (Minute: *, Hour: *, etc.) y luego comprobar el resultado. Una vez que veas que funciona, cámbialo a la frecuencia deseada (diaria, semanal).

Solución de problemas comunes (FAQ)

¿Por qué mi archivo de backup está vacío o es demasiado pequeño?

Esto suele pasar por un error en el comando. Lo más común es que la contraseña contenga caracteres especiales (como !, @, #, $, %) que interfieran con el comando. La solución es encerrar la contraseña entre comillas simples, así:

mysqldump -u usuario -p'Contraseña!Compleja' basededatos > /ruta/backup.sql

¿Puedo comprimir el backup para ahorrar espacio?

¡Claro! Es muy recomendable. Solo tienes que añadir | gzip al final y cambiar la extensión del archivo a .gz. El comando quedaría así:

mysqldump -u usuario -p'Contraseña' basededatos | gzip > /ruta/backup_$(date +\%Y-\%m-\%d).sql.gz

¿Cómo elimino los backups antiguos automáticamente?

Si haces copias diarias, en un año tendrás 365 archivos. Para no quedarte sin espacio, podemos añadir un segundo comando que borre los archivos con más de 7 días. En el mismo Cron Job, puedes añadir otra línea con este comando:

find /ruta/a/tu/carpeta/backups -name "*.sql" -type f -mtime +7 -delete

Este comando busca archivos .sql en la carpeta y borra los que tengan más de 7 días (-mtime +7). Si usas .gz, cambia la extensión en el comando.

¿Sirve esto para Syspanel?

Si estás usando Syspanel (el antiguo HestiaCP), el proceso es muy similar. La principal diferencia es que el acceso a tu panel se hace por el puerto 2106 (ej. https://tu-dominio.com:2106). Dentro de Syspanel, la sección de Cron Jobs se llama "Cron Jobs" o "Scheduled Tasks" y la gestión de bases de datos está en "Databases". El comando mysqldump es idéntico, solo cambia la interfaz gráfica.

¿Qué hago si no tengo acceso a SSH?

No necesitas SSH para este método. Todo se hace desde el File Manager y la sección de Cron Jobs de DirectAdmin. Es 100% gráfico.

Consejos adicionales para una estrategia de backups sólida

  • Guardia de tres copias: No te conformes con una sola. Descarga una copia a tu ordenador personal o a un servicio en la nube (Google Drive, Dropbox) de vez en cuando. Si el servidor falla por completo, no perderás todo.
  • Revisa tus logs: DirectAdmin suele guardar un registro de los cron jobs ejecutados. Revísalo de vez en cuando para asegurarte de que no hay errores.
  • Prueba la restauración: Un backup que no se puede restaurar no sirve de nada. Cada cierto tiempo, intenta importar tu backup en una base de datos de prueba para verificar que el archivo no está corrupto.

Conclusión: automatiza y olvídate

Configurar una copia seguridad automatica de tu base de datos en DirectAdmin es un proceso sencillo que te ahorrará muchos dolores de cabeza. Con un cron job mysql directadmin bien configurado, tendrás la tranquilidad de saber que tu información está a salvo, incluso si tu web es hackeada o el servidor sufre un accidente.

No lo dejes para mañana. Entra en tu panel, sigue estos pasos y en menos de 10 minutos tendrás tu sistema de backups funcionando en piloto automático. Tu yo del futuro (y tus clientes) te lo agradecerán.

Si tienes dudas, repasa las secciones de esta guía o consulta la documentación oficial de DirectAdmin. ¡Suerte y a proteger esos datos!

¿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