Las copias de seguridad son tu último recurso ante una pérdida de datos. Sin buenas copias, un hackeo, una avería de hardware o un error humano pueden tener consecuencias catastróficas. En Theory7 vemos, por desgracia, con frecuencia a clientes que no tienen una copia reciente justo cuando más la necesitan. En esta guía te ayudamos a montar una estrategia sólida de copias de seguridad.

Por qué las copias de seguridad son esenciales

Los datos pueden perderse de muchas maneras:

  • Hackeos y malware - El ransomware cifra tus archivos, de modo que pierdes el acceso a información crucial. Esto puede provocar pérdidas económicas considerables y daños a tu reputación.
  • Averías de hardware - Los discos pueden fallar, a menudo sin ningún aviso. Esto puede ser especialmente problemático si no tienes sistemas redundantes.
  • Errores humanos - Borrar archivos por accidente o aplicar configuraciones incorrectas puede tener consecuencias desastrosas. Sorprende la frecuencia con la que esto ocurre en la práctica.
  • Errores de software - Las actualizaciones que corrompen datos o la incompatibilidad con sistemas existentes pueden provocar pérdidas de datos.
  • Desastres naturales - Un incendio, una inundación u otros desastres pueden destruir tu centro de datos, con lo que se pierden todos tus datos.

La pregunta no es si vas a perder datos, sino cuándo. Unas buenas copias de seguridad marcan la diferencia entre una pequeña avería y un desastre para tu empresa. Es crucial adoptar un enfoque proactivo en la protección de datos.

¿De qué debes hacer copia de seguridad?

Bases de datos

Las bases de datos suelen contener tus datos más importantes:

  • Entradas y usuarios de WordPress
  • Pedidos y clientes de la tienda online
  • Configuración de aplicaciones

Archivos del sitio web

  • Imágenes y documentos subidos
  • Código personalizado y temas
  • Archivos de configuración

Configuración del servidor

  • Configuraciones del servidor web (Apache/Nginx/LiteSpeed)
  • Configuración de PHP
  • Certificados SSL
  • Tareas cron

Correo electrónico (si procede)

  • Datos de los buzones de correo
  • Configuración del correo electrónico

La regla 3-2-1 de las copias de seguridad

Una estrategia probada:

  • 3 copias de tus datos
  • 2 soportes de almacenamiento distintos
  • 1 copia fuera de las instalaciones

Ejemplo de implementación:

  1. Datos en producción en tu servidor
  2. Copia de seguridad en un disco externo o en un segundo servidor
  3. Copia de seguridad en almacenamiento en la nube (S3, Backblaze, Google Cloud)

Script automático de copia de seguridad

Este es un script completo de copia de seguridad para un servidor web típico:

#!/bin/bash
DATUM=$(date +%Y%m%d_%H%M)
BACKUP_DIR=/backups
SITE_DIR=/var/www/html
DB_USER=root
DB_PASS=wachtwoord
DB_NAME=wordpress

# Crear el directorio de copias de seguridad
mkdir -p $BACKUP_DIR

# Copia de seguridad de la base de datos
mysqldump -u$DB_USER -p$DB_PASS $DB_NAME | gzip > $BACKUP_DIR/db_$DATUM.sql.gz

# Copia de seguridad de los archivos
tar -czf $BACKUP_DIR/files_$DATUM.tar.gz $SITE_DIR

# Copia de seguridad de la configuración
tar -czf $BACKUP_DIR/config_$DATUM.tar.gz /etc/apache2 /etc/php /etc/nginx 2>/dev/null

# Eliminar copias de seguridad antiguas (de más de 7 días)
find $BACKUP_DIR -name "*.gz" -mtime +7 -delete

echo "Backup voltooid: $DATUM"

Haz que el script sea ejecutable y prográmalo:

chmod +x /root/backup.sh
crontab -e

Añade:

0 3* * * /root/backup.sh >> /var/log/backup.log 2>&1

Copias de seguridad en una ubicación externa

Las copias locales por sí solas no bastan. Cópialas a otro servidor:

Con rsync

rsync -avz /backups/ backup@andere-server:/backups/

Con almacenamiento compatible con S3

Con rclone:

rclone copy /backups remote:bucket/backups

Por FTP/SFTP

lftp -u user,pass sftp://backup.example.net -e "mirror -R /backups /remote/backups; quit"

Frecuencia de las copias de seguridad

Determina la frecuencia en función de:

  • La frecuencia con la que cambian los datos
  • La cantidad de datos que puedes permitirte perder
  • El espacio de almacenamiento disponible

Programaciones típicas:

  • Bases de datos: a diario; en sitios activos, cada hora
  • Archivos: a diario o cada semana
  • Sistema completo: cada semana

Verificación de las copias de seguridad

Una copia de seguridad que no funciona no es una copia de seguridad. Haz pruebas con regularidad:

Prueba de restauración de la base de datos

mysql -u root -p test_database < backup.sql

Prueba de extracción de archivos

tar -tzf backup.tar.gz | head -20

Prueba de restauración completa

Programa periódicamente una prueba de restauración completa en un servidor de pruebas. Así no solo confías en las copias de seguridad, sino también en el proceso de recuperación.

Política de retención

No conserves todas las copias de seguridad para siempre. Ejemplo de programación:

  • Últimos 7 días: copias de seguridad diarias
  • Últimas 4 semanas: copias de seguridad semanales
  • Últimos 12 meses: copias de seguridad mensuales

Script de retención:

# Conservar las copias diarias 7 días
find /backups/daily -mtime +7 -delete

# Conservar las copias semanales 4 semanas
find /backups/weekly -mtime +28 -delete

# Conservar las copias mensuales 1 año
find /backups/monthly -mtime +365 -delete

Copias de seguridad en DirectAdmin

Si usas DirectAdmin:

  1. Ve a Admin > Admin Backup/Transfer
  2. Configura las copias de seguridad automáticas
  3. Configura un FTP/SFTP externo para el almacenamiento fuera de las instalaciones

DirectAdmin puede hacer copias de seguridad de cuentas de usuario completas, incluidos el correo electrónico, las bases de datos y los archivos. Esto hace que la gestión de las copias de seguridad sea más sencilla y eficiente.

Más información sobre los servidores VPS de Theory7

¿Necesitas ayuda?

Estamos a tu disposición. ¿Te has encontrado con algún problema o tienes preguntas? Nuestro equipo de soporte te ayudará encantado de forma personal. Envíanos un mensaje a través del sistema de tickets: solemos responder en unas pocas horas y nos implicamos en buscar contigo la mejor solución.