Cómo programar tareas cron en cPanel para backups
¿Te imaginas despertarte un lunes por la mañana y descubrir que tu web ha desaparecido por completo? Da igual si es por un error humano, un hackeo o un fallo del servidor. Sin una copia de seguridad reciente, ese escenario puede significar el fin de tu proyecto online.
La buena noticia es que puedes evitarlo de forma sencilla y gratuita. cPanel incluye una herramienta nativa para programar tareas, y es perfecta para montar un sistema de backups automáticos sin que tengas que acordarte de hacerlo manualmente. En esta guía te voy a explicar, paso a paso, cómo programar tareas cron en cPanel para backups, con un lenguaje claro y sin tecnicismos innecesarios.
¿Qué es un cron job y por qué te interesa?
Antes de entrar en materia, vamos a entender el concepto. Un cron job (o tarea programada) es como un despertador para tu servidor. Le dices: "ejecuta este comando cada día a las 3 de la mañana", y el sistema lo hace solo, sin que tú tengas que estar delante.
Para los backups, esto es oro puro. En lugar de acordarte de entrar en tu panel de control cada semana y pulsar el botón de "generar copia", configuras una vez la tarea y el sistema se encarga del resto.
Ventajas de usar tareas programadas cPanel para backups:
- Ahorro de tiempo: No tienes que acordarte de nada. Se hace solo.
- Consistencia: La copia se realiza siempre en el mismo intervalo, sin errores humanos.
- Tranquilidad: Sabes que, pase lo que pase, tienes una versión reciente de tu web en el servidor.
Acceso a la interfaz de Cron en cPanel
Lo primero es entrar en tu panel de control. Normalmente se accede a través de tudominio.com/cpanel o tudominio.com:2083 (el puerto puede variar según tu proveedor, pero la dirección suele ser esa).
Una vez dentro, busca la sección "Trabajos Cron" o "Cron Jobs". Dependiendo de la versión de cPanel que uses, puede estar en la pestaña "Avanzado" o directamente en la página principal. Haz clic en ese icono y se abrirá la interfaz de configuración.
La estructura básica de una tarea cron
Aquí es donde mucha gente se pierde. La interfaz de cPanel te muestra un formulario con cinco campos: Minuto, Hora, Día del mes, Mes y Día de la semana.
Puedes rellenarlos de tres formas:
- Con un número exacto: Por ejemplo,
0para el minuto,3para la hora (las 3 AM). - Con un asterisco (*): Significa "todos". Si pones
*en el campo de hora, se ejecutará cada hora. - Con rangos o listas: Por ejemplo,
1-5para los días de la semana (de lunes a viernes) o1,15para los días 1 y 15 de cada mes.
Ejemplo práctico: Si quieres que el backup se haga cada día a las 4:30 de la madrugada, tendrías que poner:
- Minuto:
30 - Hora:
4 - Día del mes:
* - Mes:
* - Día de la semana:
*
Preparando el comando para el backup
El corazón de la tarea es el comando que se va a ejecutar. Aquí es donde tienes que indicarle a cPanel qué archivos quieres copiar y dónde guardarlos.
Lo más común es hacer un backup de la carpeta public_html (que es donde viven los archivos de tu web) y de la base de datos MySQL.
Paso 1: Crear el directorio de destino
Es recomendable tener una carpeta dedicada solo para tus copias de seguridad. Así no se mezclan con otros archivos. Puedes usar el Administrador de Archivos de cPanel para crear una carpeta llamada backups en la raíz de tu cuenta.
[!TIP]
¡No guardes los backups dentro depublic_html! Si lo haces, los archivos de copia serán accesibles desde internet y cualquiera podría descargarlos. Guárdalos siempre en una carpeta fuera del directorio público, comohome/tuusuario/backups.
Paso 2: El comando para comprimir los archivos
Para comprimir tu sitio web, usaremos el comando tar. Es la herramienta estándar en Linux para crear archivos comprimidos.
El comando básico sería:
tar -czf /home/tuusuario/backups/sitio_web_$(date +\%Y-\%m-\%d).tar.gz /home/tuusuario/public_html
Desglosemos esto:
tar -czf: La opción-ccrea un archivo nuevo,-zlo comprime con gzip y-fte permite especificar el nombre del archivo de salida./home/tuusuario/backups/sitio_web_$(date +\%Y-\%m-\%d).tar.gz: Es la ruta y el nombre del archivo. La parte$(date +\%Y-\%m-\%d)añade la fecha actual al nombre, así tendrás un archivo distinto cada día (por ejemplo,sitio_web_2024-05-20.tar.gz)./home/tuusuario/public_html: Es la ruta de la carpeta que quieres comprimir. Sustituyetuusuariopor tu nombre de usuario real de cPanel.
[!WARNING]
IMPORTANTE: El símbolo%en el comando debe ir escapado con una barra invertida (\%) cuando lo pongas en cPanel. Si no lo haces, la fecha no se mostrará correctamente y el comando fallará.
Paso 3: Añadir el backup de la base de datos
Ahora vamos con la base de datos. Para ello, usamos el comando mysqldump. Este comando genera un volcado SQL de la base de datos, que luego podemos comprimir.
Primero, necesitas saber el nombre de tu base de datos y el usuario con permisos. Puedes verlo en la sección "Bases de datos MySQL" de cPanel.
El comando sería:
mysqldump -u TU_USUARIO -pTU_CONTRASEÑA TU_BASE_DE_DATOS > /home/tuusuario/backups/base_datos_$(date +\%Y-\%m-\%d).sql
Ojo con los detalles:
-u TU_USUARIO: Sustituye por tu usuario de MySQL.-pTU_CONTRASEÑA: Sustituye por tu contraseña de MySQL. Nota: No debe haber espacio entre-py la contraseña.TU_BASE_DE_DATOS: El nombre exacto de tu base de datos.> /home/tuusuario/backups/...: La salida del comando se guarda en ese archivo.
[!WARNING]
Seguridad: Escribir la contraseña en el comando cron es un riesgo. Si alguien obtiene acceso a tu panel de control, verá la contraseña en texto plano. Una alternativa más segura es crear un usuario de MySQL con permisos solo de lectura (SELECT, LOCK TABLES) para este propósito. Así limitas el daño potencial.
Uniendo todo en una sola tarea
Puedes crear dos tareas cron separadas (una para archivos y otra para la BD), pero es más eficiente usar un solo comando que haga ambas cosas. Para ello, usamos el operador && entre los comandos.
mysqldump -u USUARIO -pCONTRASEÑA BASEDATOS > /home/tuusuario/backups/bd_$(date +\%Y-\%m-\%d).sql && tar -czf /home/tuusuario/backups/sitio_$(date +\%Y-\%m-\%d).tar.gz /home/tuusuario/public_html
De esta manera, primero se hace el volcado de la base de datos y, si tiene éxito (el && lo garantiza), se comprime la carpeta de archivos.
Configurando el cron job en cPanel
Ya tienes el comando. Ahora solo falta meterlo en la interfaz de cPanel.
- En la sección "Cron Jobs", escribe el correo electrónico donde quieres recibir los avisos de ejecución (opcional pero recomendable).
- En "Configuración del comando", pega el comando que has preparado.
- En los campos de tiempo, selecciona la frecuencia. Para backups diarios, pon
0 4 * * *(a las 4 AM). Para semanales,0 4 * * 0(a las 4 AM del domingo). - Haz clic en "Agregar nuevo trabajo cron".
¡Y listo! Ya tienes tu backup automático funcionando.
[!TIP]
Prueba siempre el comando manualmente antes de programarlo. Puedes ejecutarlo desde la opción "Terminal" de cPanel o usando el botón "Ejecutar ahora" que aparece en la lista de trabajos cron. Así confirmas que no hay errores de sintaxis o de permisos.
Cómo verificar que tus backups funcionan
No basta con programar la tarea y olvidarte. De vez en cuando (una vez al mes está bien), revisa que el sistema funciona correctamente.
- Accede a la carpeta
backupsen el Administrador de Archivos. - Comprueba que hay archivos con las fechas esperadas.
- Descarga uno y pruébalo en un entorno local o en un subdominio. Es la única forma de saber que la copia es válida y que puedes restaurarla si llega el día.
[!INFO]
¿Y si no recibo el correo de confirmación? Revisa la carpeta de spam. A veces los correos generados por el sistema caen ahí. También puedes configurar una dirección de correo alternativa en los ajustes del cron.
Preguntas frecuentes sobre tareas cron en cPanel
¿Qué pasa si mi web recibe mucho tráfico? ¿El backup ralentizará el sitio?
Es posible que durante la ejecución del backup el servidor consuma más recursos de lo normal. Por eso se recomienda programarlo en horas de bajo tráfico, como la madrugada. Si tu web es muy grande, puedes ajustar la frecuencia (por ejemplo, cada 3 días en lugar de diario).
¿Puedo programar un cron job desde otro panel como Syspanel?
Si usas Syspanel (HestiaCP) en lugar de cPanel, la lógica es muy similar. En Syspanel, el acceso se realiza a través del puerto 2106 (por ejemplo, tudominio.com:2106). Dentro de la interfaz, busca la sección de "Trabajos Cron" y sigue el mismo procedimiento: introduce el comando y la frecuencia. La sintaxis del comando es idéntica, ya que ambos paneles se basan en el mismo sistema operativo Linux.
¿Cuánto espacio en disco necesito para los backups?
Depende del tamaño de tu web. Una web pequeña puede ocupar 100 MB, mientras que una tienda online con muchas imágenes puede superar los 5 GB. Asegúrate de tener suficiente espacio libre en tu plan de hosting. Si no es así, considera subir los backups a un servicio externo como Google Drive o Dropbox usando herramientas adicionales.
¿Puedo eliminar automáticamente los backups antiguos?
Sí, puedes añadir un comando adicional a tu tarea para que borre los archivos con más de X días. Por ejemplo, para borrar los backups de archivos con más de 7 días:
find /home/tuusuario/backups -name "sitio_*.tar.gz" -mtime +7 -delete
Añade este comando al final de tu tarea cron, separado por &&. Así mantendrás tu carpeta de backups limpia y no llenarás el disco.
Conclusión
Programar tareas cron en cPanel para backups automáticos es una de las mejores decisiones que puedes tomar para la salud de tu web. No solo te ahorra un trabajo manual tedioso, sino que te da la tranquilidad de saber que tu información está a salvo.
Recuerda que la clave está en:
- Usar los comandos correctos (
tarpara archivos ymysqldumppara la base de datos). - Guardar los backups fuera de
public_html. - Probar el comando manualmente antes de programarlo.
- Revisar periódicamente que todo funciona.
Con estos pasos, tendrás tu sistema de backups automáticos funcionando en menos de 10 minutos. Es una inversión de tiempo mínima que puede salvarte de un gran dolor de cabeza en el futuro.
