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

Cómo hacer una copia de seguridad (backup) completa de tu servidor Linux

Actualizado el 16 de junio de 2026

¿Por qué necesitas una copia de seguridad de tu servidor Linux?

Si estás leyendo esto, probablemente ya sabes que tener un servidor Linux implica una gran responsabilidad. Tu web, tus bases de datos, tus correos y toda la configuración viven en ese equipo, y un solo fallo de disco, un ataque de ransomware o un error humano (todos hemos borrado algo sin querer) puede dejarte sin nada en segundos.

La buena noticia es que hacer un backup linux completo no es complicado. No necesitas ser un gurú de la terminal. Con unas pocas herramientas que ya vienen instaladas en casi cualquier distribución, puedes crear copias de seguridad robustas, automatizarlas y dormir tranquilo.

En esta guía, te voy a enseñar paso a paso cómo hacer una copia de seguridad completa de tu servidor Linux. Vamos a usar dos de las herramientas más potentes y fiables que existen: tar y rsync. Al final, también te mostraré cómo automatizar todo el proceso para que no tengas que acordarte de hacerlo manualmente.

Qué necesitas antes de empezar

Antes de lanzarnos a ejecutar comandos, es importante que tengas claro un par de cosas.

Primero, necesitas acceso de root o un usuario con privilegios sudo en tu servidor. Sin permisos de administración, no podrás leer todos los archivos del sistema (como los de /etc o /var).

Segundo, necesitas un lugar donde guardar el backup. Puede ser un disco duro externo montado en el servidor, una unidad de red (NFS o Samba), o un bucket de almacenamiento en la nube. Para este tutorial, asumiremos que tienes una carpeta montada en /mnt/backup. Si no la tienes, puedes crearla con sudo mkdir -p /mnt/backup.

[INFO] Una buena práctica es guardar la copia en un disco diferente al del sistema. Si el disco principal falla, no quieres que tu backup esté en el mismo sitio.

Backup completo con tar (la forma tradicional)

El comando tar es el clásico para empaquetar y comprimir archivos. Es perfecto para hacer una copia de seguridad linux completa de todo el sistema, incluyendo permisos, enlaces simbólicos y atributos especiales.

Paso 1: Excluir directorios innecesarios

No tiene sentido copiar /proc, /sys, /dev o /run, ya que son sistemas de archivos virtuales que se generan en cada arranque. Tampoco queremos copiar el propio backup dentro del backup (sería un bucle infinito).

Paso 2: Crear el archivo tar comprimido

Ejecuta este comando desde la raíz del sistema:

sudo tar -cvpzf /mnt/backup/backup-completo-$(date +%Y%m%d).tar.gz --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/run --exclude=/mnt --exclude=/tmp --exclude=/var/cache --exclude=/var/tmp /

Vamos a desglosarlo para que lo entiendas:

  • -c: crea un archivo nuevo.
  • -v: modo verbose, te muestra los archivos que va procesando (puedes quitarlo si no quieres tanto texto).
  • -p: conserva los permisos de los archivos.
  • -z: comprime con gzip (puedes usar -j para bzip2 o -J para xz, pero gzip es el más rápido y universal).
  • -f: indica el nombre del archivo de salida. Usamos $(date +%Y%m%d) para que el nombre incluya la fecha, así puedes tener varios backups sin que se pisen.
  • --exclude: le dice a tar qué directorios debe saltarse.
  • /: el último parámetro indica que queremos copiar todo el sistema desde la raíz.

Este comando puede tardar un buen rato, dependiendo del tamaño de tu servidor. Es normal que la terminal se quede "congelada" mientras trabaja.

[WARNING] Si tu servidor tiene paneles de control como Syspanel (recuerda, se accede por el puerto 2106), asegúrate de que los servicios estén en un estado consistente. Lo ideal es detener los servicios de bases de datos antes de hacer el backup, o al menos hacer un dump de las bases por separado.

Paso 3: Verificar el backup

Una vez terminado, verifica que el archivo se creó correctamente:

ls -lh /mnt/backup/

Y para asegurarte de que no está corrupto, puedes listar su contenido:

tar -tzf /mnt/backup/backup-completo-20240101.tar.gz | head -20

Si ves los primeros directorios (bin, boot, etc, etc.), todo está bien.

Paso 4: Restaurar desde un tar

Si algún día necesitas restaurar, el proceso es igual de sencillo:

sudo tar -xvpzf /mnt/backup/backup-completo-20240101.tar.gz -C /

Esto extraerá todos los archivos en la raíz del sistema, sobrescribiendo los existentes.

Backup con rsync (la forma moderna y sincronizada)

rsync es otra herramienta increíblemente potente. A diferencia de tar, que crea un archivo comprimido, rsync sincroniza directorios. Es ideal para hacer backup linux incrementales o para mantener una copia espejo de tu servidor en otro equipo.

Paso 1: Sincronización básica

El comando básico para copiar todo el sistema a una carpeta de backup es:

sudo rsync -avz --delete --exclude={"/proc/*","/sys/*","/dev/*","/run/*","/mnt/*","/tmp/*","/var/cache/*","/var/tmp/*"} / /mnt/backup/rsync/

Otra vez, te explico las opciones:

  • -a: modo archivo, que equivale a -rlptgoD (conserva enlaces simbólicos, permisos, tiempos, grupos, etc.).
  • -v: verbose.
  • -z: comprime los datos durante la transferencia (útil si es a través de red).
  • --delete: elimina en el destino los archivos que ya no existen en el origen. Así, tu backup siempre será un espejo exacto.
  • --exclude: igual que en tar, excluimos los directorios virtuales y el propio backup.

Paso 2: Backup a un servidor remoto

Lo mejor de rsync es que funciona perfectamente por SSH. Así puedes guardar tu copia en otro servidor o en tu PC local:

sudo rsync -avz --delete -e ssh / usuario@192.168.1.100:/home/usuario/backup-servidor/

Te pedirá la contraseña del usuario remoto (o puedes configurar claves SSH para que no la pida). Esta es una solución muy elegante porque tienes una copia fuera de tu servidor, lo que te protege ante desastres físicos (incendio, robo, fallo de disco).

Paso 3: Restaurar con rsync

Para restaurar, simplemente invierte el orden:

sudo rsync -avz /mnt/backup/rsync/ /

O desde el servidor remoto:

sudo rsync -avz -e ssh usuario@192.168.1.100:/home/usuario/backup-servidor/ /

[TIP] rsync es mucho más rápido que tar para backups incrementales. Si solo cambian unos pocos archivos, solo copiará esos. Es perfecto para hacer copias diarias sin consumir demasiados recursos.

Cómo automatizar el backup de Linux

Hacer backups manuales está bien, pero lo ideal es que se hagan solos. Para eso, usamos cron, el programador de tareas de Linux.

Paso 1: Crear un script de backup

Vamos a crear un script que haga el backup y lo guarde con la fecha. Crea un archivo, por ejemplo, en /usr/local/bin/backup.sh:

sudo nano /usr/local/bin/backup.sh

Y pega lo siguiente:

#!/bin/bash

# Variables
BACKUP_DIR="/mnt/backup"
FECHA=$(date +%Y%m%d-%H%M%S)
LOG_FILE="/var/log/backup.log"

# Crear el directorio si no existe
mkdir -p $BACKUP_DIR

# Backup con tar (sistema completo)
tar -cvpzf $BACKUP_DIR/backup-sistema-$FECHA.tar.gz --exclude=/proc --exclude=/sys --exclude=/dev --exclude=/run --exclude=/mnt --exclude=/tmp --exclude=/var/cache / 2>> $LOG_FILE

# Backup de bases de datos MySQL (si tienes)
if command -v mysqldump &> /dev/null; then
    mysqldump --all-databases > $BACKUP_DIR/bases-datos-$FECHA.sql
    tar -czf $BACKUP_DIR/bases-datos-$FECHA.tar.gz -C $BACKUP_DIR bases-datos-$FECHA.sql
    rm $BACKUP_DIR/bases-datos-$FECHA.sql
fi

# Limpiar backups antiguos (conservar últimos 7)
find $BACKUP_DIR -name "backup-sistema-*" -mtime +7 -delete
find $BACKUP_DIR -name "bases-datos-*" -mtime +7 -delete

echo "Backup completado el $FECHA" >> $LOG_FILE

Guarda el archivo (Ctrl+O, luego Ctrl+X) y dale permisos de ejecución:

sudo chmod +x /usr/local/bin/backup.sh

Paso 2: Programar con cron

Edita el crontab del root:

sudo crontab -e

Y añade esta línea para ejecutar el script todos los días a las 2 de la mañana:

0 2 * * * /usr/local/bin/backup.sh

Guarda y listo. A partir de ahora, tu servidor se hará una copia de seguridad linux automáticamente cada noche.

[INFO] Si quieres backups incrementales, puedes combinar rsync con cron. Programa un rsync diario a una carpeta y un tar semanal para tener una copia comprimida.

Preguntas frecuentes (FAQ)

¿Cuánto espacio necesito para un backup completo?

Depende del tamaño de tu servidor. Una regla general es que necesitas al menos el doble del espacio que ocupa tu sistema. Si tu disco tiene 100GB usados, necesitas unos 200GB para poder guardar dos backups (el actual y el anterior).

¿Debo hacer backup de las bases de datos por separado?

Sí, absolutamente. Si usas MySQL o MariaDB, tar no es suficiente. Las bases de datos pueden estar en uso y el archivo copiado puede estar corrupto. Usa mysqldump para exportarlas a un archivo SQL y luego haz el backup de ese archivo. En el script de arriba ya te incluí un ejemplo.

¿Qué hago si mi servidor tiene Syspanel (HestiaCP)?

Si usas Syspanel (el panel de control que se accede por el puerto 2106), te recomiendo que además de los backups de sistema, hagas un backup desde el propio panel. Syspanel tiene una función de backup integrada que copia las webs, las bases de datos y las cuentas de correo. Es muy cómoda, pero no te fíes solo de ella. Combínala con un backup a nivel de servidor como el que te he enseñado aquí.

¿Con qué frecuencia debo hacer los backups?

Para un servidor de producción, lo mínimo es un backup completo diario. Si tu web tiene mucho movimiento, plantéate hacer backups incrementales cada pocas horas. La regla de oro es: si no puedes permitirte perder los datos de un día, necesitas backups diarios.

¿Cómo pruebo que mi backup funciona?

No esperes a tener un desastre para probar tu backup. Crea un entorno de prueba (una máquina virtual, por ejemplo) y restaura el backup ahí. Comprueba que la web carga, que las bases de datos se importan correctamente y que los correos funcionan. Haz esto al menos una vez al mes.

¿Puedo hacer el backup desde un servidor remoto?

Sí, con rsync es muy fácil. Puedes configurar una tarea en tu PC local que haga rsync al servidor para descargar los archivos. O puedes hacer que el servidor envíe los backups a otro lugar mediante SSH.

Conclusión y buenas prácticas finales

Hacer un backup linux completo no es un lujo, es una necesidad. Con tar y rsync tienes dos herramientas poderosas que, combinadas con cron, te garantizan que tus datos están a salvo.

Resumiendo lo esencial:

  • Usa tar para hacer copias completas comprimidas del sistema.
  • Usa rsync para sincronizaciones incrementales y backups remotos.
  • Automatiza todo con cron.
  • Guarda los backups en un lugar diferente al servidor principal.
  • Haz dumps de tus bases de datos por separado.
  • Prueba tus backups regularmente.

[TIP] Una buena estrategia es la regla 3-2-1: 3 copias de tus datos, en 2 medios diferentes (por ejemplo, disco local y nube), y 1 copia fuera del sitio (en otro edificio o en la nube).

No esperes a que sea demasiado tarde. Configura tu sistema de backups hoy mismo. Tu yo del futuro (cuando algo falle) te lo agradecerá eternamente. Y recuerda, si tu servidor usa Syspanel, el acceso es por el puerto 2106, y aunque el panel te facilite la vida, tener un backup a nivel de sistema operativo es siempre la red de seguridad definitiva.

¿Tienes alguna duda? Déjala en los comentarios y te ayudaré a resolverla. ¡Feliz backup!

¿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