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

Cómo hacer una copia de seguridad de una base de datos en Syspanel con cron

Actualizado el 5 de enero de 2026

Introducción: ¿Por qué necesitas copias de seguridad automáticas?

Si tienes una página web, una tienda online o cualquier aplicación que use una base de datos, sabrás que esa información es el corazón de tu negocio. Perderla sería un desastre absoluto: pedidos, clientes, artículos, configuraciones... todo desaparecería en un segundo. Por eso, las copias de seguridad no son un lujo, sino una necesidad.

En este artículo, te voy a enseñar cómo configurar un backup de tu base de datos en Syspanel de forma totalmente automática usando el programador de tareas del sistema, conocido como cron. Al final, tendrás un sistema de copias de seguridad automáticas syspanel que funcionará solo, sin que tengas que acordarte de hacerlo manualmente.

Vamos a desmitificar el tema. No necesitas ser un experto en programación para lograrlo. Con seguir unos pocos pasos, tendrás tu syspanel backup mysql funcionando en menos de lo que te tomas un café.

¿Qué es Syspanel y por qué usar su programador de tareas?

Primero, hablemos de la herramienta. Syspanel (antes conocido como HestiaCP) es un panel de control de hosting gratuito y de código abierto. Es muy popular porque es rápido, seguro y fácil de usar. Accedes a él a través del puerto 2106 (por ejemplo, https://tu-dominio.com:2106).

Dentro de Syspanel, además de gestionar tus sitios web, correos y usuarios FTP, tienes la posibilidad de programar tareas. Esta función se llama cron o cron jobs. Piensa en el cron como un despertador: le dices a qué hora debe "sonar" y qué debe hacer cuando suene. En nuestro caso, le diremos que haga una copia de seguridad de la base de datos.

La gran ventaja de usar el cron es la automatización. No dependes de tu memoria ni de estar delante del ordenador. El sistema hace el trabajo pesado por ti, a la hora que tú decidas.

Preparativos antes de empezar

Antes de lanzarnos a crear nuestro backup mysql cron job, necesitas tener algunas cosas a mano:

  1. Acceso a Syspanel: Debes poder iniciar sesión en tu panel de control. Recuerda que la URL suele ser https://tu-dominio.com:2106 y usas tu usuario y contraseña de administrador.

  2. Nombre de la base de datos: Identifica exactamente cómo se llama la base de datos que quieres respaldar. Normalmente tienen un prefijo con tu nombre de usuario, por ejemplo usuario_basededatos. Puedes ver la lista en la sección "Bases de datos" de Syspanel.

  3. Credenciales de la base de datos: Aunque el comando que vamos a usar nos pedirá la contraseña del usuario de la base de datos, en Syspanel a menudo el usuario root del sistema puede hacer el backup sin problemas. Aun así, es bueno saber el nombre de usuario de la BD.

Una vez que tengas esto, podemos empezar. No te preocupes si no entiendes todos los términos técnicos al principio; iremos paso a paso.

Paso 1: Accede al área de tareas programadas en Syspanel

Lo primero es entrar en tu panel de Syspanel. Una vez dentro, busca en el menú lateral o superior la sección que se llama "Cron" o "Tareas programadas". En algunas versiones puede aparecer como "Programador de tareas". Haz clic en esa opción.

Verás una lista de las tareas que ya existen (si es que hay alguna) y un botón o enlace para "Añadir tarea" o "Agregar trabajo cron". Haz clic en ese botón para crear una nueva.

Paso 2: Crea el comando para el backup de MySQL

Ahora viene la parte más importante: escribir el comando que hará la copia de seguridad. No te asustes, es más sencillo de lo que parece.

En el formulario de nueva tarea, tendrás varios campos. El más importante es el de "Comando" o "Command". Ahí es donde tienes que pegar la instrucción.

Te voy a dar el comando base, pero tendrás que personalizarlo con los datos de tu base de datos. El comando es el siguiente:

mysqldump -u NOMBRE_USUARIO -pCONTRASEÑA NOMBRE_BASE_DATOS > /ruta/donde/guardar/backup_$(date +\%Y-\%m-\%d).sql

Vamos a desglosarlo para que lo entiendas perfectamente:

  • mysqldump: Es el programa que se encarga de hacer la copia de seguridad de la base de datos MySQL.
  • -u NOMBRE_USUARIO: Aquí pones el nombre de usuario de tu base de datos. Por ejemplo, -u admin_bd.
  • -pCONTRASEÑA: Aquí va la contraseña de ese usuario. IMPORTANTE: No debe haber espacio entre -p y la contraseña. Por ejemplo, -pMiClaveSecreta.
  • NOMBRE_BASE_DATOS: Es el nombre exacto de la base de datos que quieres respaldar.
  • >: Este símbolo redirige la salida del comando a un archivo. Es decir, guarda todo en un archivo en lugar de mostrarlo en pantalla.
  • /ruta/donde/guardar/backup_$(date +\%Y-\%m-\%d).sql: Esta es la ruta y el nombre del archivo donde se guardará la copia. Te recomiendo usar una ruta como /home/usuario/backups/. La parte $(date +\%Y-\%m-\%d) es un truco que añade la fecha actual al nombre del archivo. Así, cada día se creará un archivo distinto como backup_2024-03-15.sql. OJO: En el cron, el símbolo % debe escaparse con una barra invertida \%, como en el ejemplo.

Ejemplo práctico

Imagina que tu usuario es pepe_web, tu contraseña es Clave1234 y tu base de datos se llama pepe_tienda. Quieres guardar los backups en la carpeta /home/pepe/backups. El comando sería:

mysqldump -u pepe_web -pClave1234 pepe_tienda > /home/pepe/backups/tienda_$(date +\%Y-\%m-\%d).sql

Si no sabes cuál es la ruta de tu usuario, en Syspanel suele ser /home/tu_usuario/. Puedes verlo en la sección de "Usuarios" o simplemente creando la carpeta backups en tu gestor de archivos.

Paso 3: Configura la frecuencia del cron

Una vez que tienes el comando listo, es hora de decirle al sistema cada cuánto tiempo debe ejecutarlo. En el mismo formulario, verás campos como:

  • Minuto: (0-59)
  • Hora: (0-23)
  • Día del mes: (1-31)
  • Mes: (1-12)
  • Día de la semana: (0-7, donde 0 y 7 son domingo)

Puedes rellenar estos campos con valores específicos o usar asteriscos * para indicar "todos". Por ejemplo:

  • Para hacer un backup todos los días a las 3:00 AM, pondrías: 0 3 * * *.
  • Para hacer un backup todas las noches a las 11:30 PM, pondrías: 30 23 * * *.
  • Para hacer un backup cada domingo a las 4:00 AM, pondrías: 0 4 * * 0.

En Syspanel, hay una opción visual para configurar esto, pero si ves un campo de "expresión cron", puedes escribir la expresión directamente. Te recomiendo empezar con una frecuencia diaria para asegurarte de que funciona.

[TIP] Si no estás seguro de la frecuencia, empieza con una vez al día. Es un buen equilibrio entre seguridad y uso de recursos del servidor.

Paso 4: Guarda y prueba la tarea

Después de rellenar el comando y la frecuencia, busca el botón para "Añadir" o "Guardar". La tarea se creará y aparecerá en la lista.

Ahora viene la prueba de fuego. No te fíes de que "funcionará". Debes comprobarlo. La mayoría de los paneles, incluido Syspanel, tienen un botón para "Ejecutar ahora" o "Run now" junto a cada tarea. Haz clic en ese botón para ejecutar la tarea manualmente.

Después de ejecutarla, ve a la carpeta donde configuraste que se guardara el backup (por ejemplo, /home/pepe/backups/) y verifica que el archivo .sql se haya creado correctamente.

[WARNING] Si el archivo no aparece, revisa los permisos de la carpeta. El usuario del servidor debe tener permiso de escritura en esa ubicación. Si tienes problemas, prueba a guardar el backup en /tmp/ (aunque no es recomendable para un backup diario) para ver si el problema es la ruta.

Automatización y gestión de backups antiguos

Ahora que ya tienes tu cron backup base de datos funcionando, es bueno que pienses en el futuro. Si haces un backup diario, en un año tendrás 365 archivos. Eso ocupa espacio y puede ser un lío.

Para solucionarlo, puedes añadir un segundo comando a tu tarea cron, o crear una tarea separada que borre los archivos antiguos.

Puedes crear una tarea que se ejecute una vez al mes y que borre los backups de hace más de 30 días. El comando sería algo como:

find /home/pepe/backups/ -name "*.sql" -mtime +30 -delete

Este comando busca en la carpeta /home/pepe/backups/ todos los archivos que terminan en .sql y que tienen más de 30 días de antigüedad (-mtime +30), y los borra (-delete).

[INFO] Puedes añadir este comando al final del primer comando en el mismo campo "Comando", separándolos con &&. Por ejemplo: mysqldump ... && find ... -delete. Así, solo se borrarán los antiguos si el backup se ha hecho correctamente.

Solución de problemas comunes

A veces las cosas no salen a la primera. Aquí tienes los problemas más habituales y cómo solucionarlos:

  • Error "Access denied" o "mysqldump: command not found": Esto suele significar que el comando mysqldump no está en la ruta del sistema. En Syspanel, a veces la ruta es más larga. Prueba a usar la ruta completa: /usr/bin/mysqldump o /usr/local/bin/mysqldump. Puedes averiguar la ruta exacta ejecutando which mysqldump en la terminal.

  • El archivo de backup está vacío: Esto puede pasar si la contraseña es incorrecta o si el usuario de la BD no tiene permisos para volcarla. Revisa el comando y asegúrate de que no hay espacios extra.

  • El backup no se crea a la hora indicada: Revisa la zona horaria del servidor. Syspanel tiene su propia zona horaria, que puede ser diferente a la tuya. Asegúrate de que la hora que configuras en el cron es la hora del servidor, no la tuya local.

  • No encuentro la sección "Cron" en Syspanel: Asegúrate de que estás en el panel de administración principal. A veces, si eres un usuario con menos permisos, esta opción puede estar oculta. Si es tu propio servidor, deberías tener acceso total.

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

Configurar un syspanel backup mysql con cron es una de las mejores inversiones de tiempo que puedes hacer para tu web. No solo te protege de accidentes, sino que te da una tranquilidad enorme. Saber que tu información está a salvo, incluso si cometes un error o sufres un ataque, no tiene precio.

Hemos visto que el proceso es sencillo:

  1. Accedes a Syspanel (puerto 2106).
  2. Vas a la sección de tareas programadas (cron).
  3. Creas una tarea con el comando mysqldump.
  4. Configuras la frecuencia (por ejemplo, diaria a las 3 AM).
  5. Pruebas que funciona y gestionas los backups antiguos.

Con estos pasos, ya no tendrás que preocuparte por perder tu base de datos. El sistema trabajará por ti, haciendo copias de seguridad automáticas syspanel de forma silenciosa y eficiente.

Preguntas Frecuentes (FAQ)

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

Sí, puedes. En lugar de especificar un nombre de base de datos, puedes usar la opción --all-databases en el comando mysqldump. El comando sería: mysqldump -u usuario -pcontraseña --all-databases > /ruta/backup_todas_$(date +\%Y-\%m-\%d).sql. Eso creará un archivo con todas tus bases de datos.

¿El backup incluye también los archivos de mi web?

No, este comando solo hace una copia de la base de datos. Para los archivos (como imágenes, código PHP, etc.), necesitas hacer un backup de archivos, que también puedes automatizar con cron usando tar o rsync.

¿Cuánto espacio ocupa un backup?

Depende del tamaño de tu base de datos. Puede ser desde unos pocos kilobytes hasta varios gigabytes. Por eso es importante gestionar los backups antiguos y no acumularlos indefinidamente.

¿Es seguro guardar la contraseña en el comando cron?

Es un riesgo menor porque el archivo de configuración del cron suele ser legible solo por el administrador. Sin embargo, es una buena práctica usar un usuario de base de datos con permisos limitados (solo lectura) para el backup, en lugar del usuario root.

¿Qué hago si necesito restaurar un backup?

Si necesitas restaurar, usa el comando mysql -u usuario -pcontraseña nombre_bd < archivo_backup.sql. Reemplaza los valores con los de tu base de datos y la ruta del archivo que quieras restaurar.

¿Puedo recibir un correo cuando se ejecute el backup?

Sí. En Syspanel, en la configuración de la tarea cron, suele haber un campo para "Enviar notificaciones por email". Actívalo y recibirás un correo cada vez que se ejecute la tarea, lo que te ayudará a verificar que todo va bien.

¿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