ANAYIL GROUP
Anayil Panel Logo
Anayil ConocimientoKBConocimiento para todo Anayil
InicioCopias de seguridadCómo programar copias de seguridad automáticas diarias y semanales con Cron
Copias de seguridad8 min•Dificultad: Básico

Cómo programar copias de seguridad automáticas diarias y semanales con Cron

Automatiza la ejecución desatendida de copias de seguridad durante la madrugada para no afectar el rendimiento.

Ingeniería de Sistemas AnayilActualizado: 2026-10-10

Cómo aplicar esta guía a tu caso

Esta respuesta trata «Cómo programar copias de seguridad automáticas diarias y semanales con Cron». Léela junto con el resumen para confirmar que el síntoma y el servicio coinciden con lo que te ocurre. Las opciones pueden variar según tu plan y la configuración de tu cuenta.

  • Antes de cambiar nada, anota qué esperabas, qué ocurrió y la hora aproximada. Comprueba si el problema afecta a una sola página o a todo el servicio.
  • Guarda el mensaje de error completo y los cambios recientes. Oculta contraseñas, códigos de acceso, datos personales y claves antes de compartir capturas o registros.
  • Si el paso requiere acceso de administrador, reiniciar servicios o editar archivos del servidor, detente si no administras ese servidor. Envía a soporte el nombre del servicio, el error y las comprobaciones realizadas.

Matriz de causas probables y resolución

Sigue cada rama solo cuando la evidencia la respalde. Un síntoma puede tener más de una causa; no se debe modificar una capa por descarte.

01Red, DNS, ruta BGP/Anycast o filtrado de firewall/ASN

Por qué puede ocurrir: Si «cómo programar copias de seguridad automáticas diarias y semanales con cron» varía por ubicación, red o proveedor, puede fallar la resolución autoritativa, una ruta de tránsito, el anuncio Anycast o una regla UFW/iptables/fail2ban. Una prueba desde un único punto no permite atribuir el problema a BGP ni a un ASN.

Cómo diagnosticarlo (solo lectura):
bash
`dig +trace HOST`
`curl -sv --connect-timeout 5 --max-time 15 https://HOST/ -o /dev/null`
`mtr -rwzc 5 HOST` (si está disponible; compara varias redes)

Resolución paso a paso:
1. Compara DNS y conectividad desde dos redes y conserva hora UTC, destino y salida redactada. 2. Si falla antes del servicio, pide al administrador/proveedor que compruebe ruta, firewall, Anycast y bloqueos por IP/ASN. 3. No vacíes reglas ni desactives fail2ban; solicita una excepción limitada solo si el operador confirma un falso positivo. 4. Repite la prueba desde la misma ubicación y desde otra red.

02Filesystem, cuota, inodos, permisos POSIX/ACL o atributo inmutable

Por qué puede ocurrir: Una operación relacionada con «cómo programar copias de seguridad automáticas diarias y semanales con cron» puede fallar aunque el proceso esté activo si el volumen llegó a su cuota/inodos, el usuario de servicio perdió acceso por POSIX/ACL, un atributo inmutable bloquea la escritura o el filesystem reporta errores.

Cómo diagnosticarlo (solo lectura):
bash
`df -hT; df -i`
`namei -l RUTA_AFECTADA`
`getfacl -p RUTA_AFECTADA` y, si se administra el host, `lsattr RUTA_AFECTADA`
Revisa eventos del filesystem con el operador; para ZFS/EXT4 no ejecutes reparaciones en línea a ciegas.

Resolución paso a paso:
1. Identifica el mount, cuota e inodos afectados; no borres datos para liberar espacio sin conocer su propietario. 2. Pide al administrador que valide ACL, propietario, modo y atributos contra el diseño esperado. 3. Corrige solo la ruta y el principal mínimos; nunca uses `chmod -R 777`. 4. Si hay errores ZFS/EXT4, conserva logs y deja scrub/fsck y recuperación al operador, con ventana y copia verificadas.

03Memoria, procesos, sockets PHP-FPM, swap o bloqueos de base de datos

Por qué puede ocurrir: La carga asociada a «cómo programar copias de seguridad automáticas diarias y semanales con cron» puede agotar memoria/cgroup o swap, saturar workers/sockets PHP-FPM, alcanzar límites de procesos o quedar esperando un lock/un pool de conexiones de MySQL/MariaDB.

Cómo diagnosticarlo (solo lectura):
bash
`free -h; vmstat 1 5`
`ps -eo pid,comm,%mem,%cpu --sort=-%mem | head`
En cgroup v2: `cat /sys/fs/cgroup/memory.events`
Pide al DBA métricas sanitizadas de waits/locks y al operador métricas del pool PHP-FPM; no compartas consultas con datos personales.

Resolución paso a paso:
1. Correlaciona OOM, swap-in/out, cola de workers y espera de conexiones con la hora del síntoma. 2. Reduce concurrencia o corrige la fuga/consulta en staging antes de subir límites. 3. Solicita al administrador dimensionar memoria, pool y cuotas conjuntamente; aumentar solo `max_children` puede agravar el OOM. 4. Verifica que los contadores dejan de crecer y que la latencia se recupera bajo carga controlada.

04Runtime, proxy/upstream, socket local o negociación TLS/SNI

Por qué puede ocurrir: El proceso de «cómo programar copias de seguridad automáticas diarias y semanales con cron» puede no escuchar en la interfaz/puerto esperado o el proxy Nginx/LiteSpeed puede apuntar a un upstream/socket incorrecto. También pueden intervenir un worker Node.js/Bun o Python WSGI caído, cabeceras proxy incorrectas, certificado vencido o SNI que no coincide.

Cómo diagnosticarlo (solo lectura):
bash
`curl -sv --connect-timeout 5 --max-time 15 https://HOST/RUTA -o /dev/null`
`openssl s_client -connect HOST:443 -servername HOST -verify_return_error </dev/null`
Con acceso autorizado: contrasta listener, upstream configurado y logs del runtime; no publiques sus secretos.

Resolución paso a paso:
1. Separa respuesta del proxy, handshake TLS y estado del proceso; conserva códigos HTTP y hora UTC. 2. Comprueba bind/puerto, healthcheck, socket y configuración de upstream contra el despliegue vigente. 3. Valida cadena/SAN/SNI y cabeceras forwarded; prueba cambios primero en staging. 4. El operador puede validar la configuración y hacer reload controlado; confirma respuesta desde proxy y origen.

05API, webhook, rate limit, CORS o autenticación Bearer/HMAC

Por qué puede ocurrir: Si «cómo programar copias de seguridad automáticas diarias y semanales con cron» depende de una API, pueden producirse 401/403 por token/rol, 429 por cuota, 5xx/timeout, CORS por origen/método, o rechazo HMAC por cuerpo/fecha/firma distintos. Un webhook puede reintentarse y duplicar efectos si no es idempotente.

Cómo diagnosticarlo (solo lectura):
bash
`curl -sv --connect-timeout 5 --max-time 20 https://API_HOST/RUTA -o /dev/null`
Registra método, ruta sin datos sensibles, código, `Date`, `Retry-After`, duración e ID de petición. Comprueba CORS en la consola del navegador. No incluyas Bearer tokens ni secretos HMAC.

Resolución paso a paso:
1. Verifica identidad, permisos, reloj del emisor y alcance del token mediante el gestor oficial; rota una credencial solo por canal seguro. 2. Para 429 respeta `Retry-After` y aplica backoff con jitter e idempotency key; no repitas operaciones de escritura a ciegas. 3. Para CORS valida origen exacto, método y cabeceras permitidas en el servidor que responde; CORS no sustituye autenticación. 4. Para HMAC confirma bytes exactos del cuerpo, algoritmo, timestamp y secreto compartido en ambos extremos; prueba un evento no productivo.

Requisitos previos

  • Acceso con usuario Administrador a Anayil Panel (puerto 8090) o acceso root vía SSH
  • Espacio suficiente en disco en la partición de destino (mínimo el tamaño del sitio a respaldar)
  • Servicios de base de datos MariaDB y demonio lscpd en estado activo

Advertencias importantes

  • Nunca almacenes copias de seguridad exclusivamente en la misma partición local sin réplicas fuera del servidor.
  • Evita reiniciar el servidor mientras un proceso de compresión tar o volcado mysqldump esté en progreso.

Procedimiento paso a paso

1. Explicación sencilla y diagnóstico inicial

Programar copias automáticas es como poner una alarma nocturna para que el servidor haga su trabajo de protección mientras duermes sin que tengas que intervenir. Comprueba el estado del sistema y espacio disponible antes de iniciar.
bash
crontab -l | grep -i backup || true
Resultado esperado:
OK / active

2. Guía paso a paso en Anayil Panel

En Backup > Schedule Backups selecciona la frecuencia diaria o semanal y la retención deseada.
bash
systemctl status cron || systemctl status crond
Consejo pro: Puedes consultar los registros en vivo del proceso en /usr/local/lscp/logs/server.log.

3. Detalles técnicos para administradores y DevOps

Inserta una directiva en el cron del sistema ejecutando backupSchedule.py y rotando copias antiguas.
bash
systemctl status lscpd
Resultado esperado:
active (running)

Errores frecuentes y soluciones

Error: Disk quota exceeded during backup creation

Causa probable: La partición /home o el disco raíz no tiene espacio suficiente para generar el archivo comprimido temporal.

Solución recomendada: Libera espacio con journalctl --vacuum-time=2d o monta un volumen de almacenamiento externo en /home/backup.

mysqldump: Got error: 2006: MySQL server has gone away

Causa probable: Una tabla contiene registros que exceden el valor de max_allowed_packet en /etc/my.cnf.

Solución recomendada: Aumenta max_allowed_packet = 128M en /etc/my.cnf y ejecuta systemctl restart mariadb.

Plan de recuperación y reversión

Si el proceso de respaldo se interrumpe, elimina los archivos .tar.gz incompletos en /home/backup para liberar espacio y reinicia lscpd si es necesario.

Artículos relacionados en esta categoría:

¿Te resultó útil esta guía técnica?

¿Tienes una incidencia en producción?

Los administradores de sistemas de Hosting Anayil pueden intervenir directamente en tu servidor.

Abrir Ticket en Hosting Anayil