Skip to content

Práctica 4: Backup en un NAS con cron (Ubuntu Server)

Práctica ampliación: Copias de seguridad automatizadas en un NAS con cron (Ubuntu Server)

Introducción

En esta práctica se aprenderá a realizar copias de seguridad automáticas de un sistema Linux (Ubuntu Server) hacia un NAS (OpenMediaVault) utilizando un script personalizado y el programador de tareas cron. Se cubrirán los pasos necesarios para montar la carpeta compartida del NAS, crear el script de backup, programar la tarea y restaurar datos desde el NAS.

0) Objetivos de aprendizaje

  • Comprender la diferencia entre RAID y copia de seguridad.
  • Aprender a crear copias de seguridad locales y remotas en un NAS con OMV.
  • Programar tareas automáticas con cron en Linux.
  • Probar la restauración de datos desde el NAS.

1) Escenario de partida

Se parte de la práctica anterior, con un NAS OpenMediaVault (OMV) ya configurado, con:

  • Una carpeta compartida accesible desde Linux vía NFS o SMB.
  • Red en funcionamiento (por ejemplo 192.168.1.0/24).
  • Un equipo cliente Ubuntu Server desde el que se realizará la copia.

Ejemplo de configuración

  • Carpeta compartida en el NAS: /backup_clientes
  • IP del NAS: 192.168.1.50
  • Carpeta del sistema a respaldar: /etc

2) Preparación en el NAS (OMV)

  1. En la interfaz web de OMV, crea una carpeta compartida llamada backup_clientes:
  2. Menú: Almacenamiento → Carpetas compartidas → Añadir
  3. Volumen: DATOS
  4. Permisos: lectura/escritura para el grupo de alumnos.
  5. Habilita el acceso desde el cliente Linux:
  6. Si usas NFS: ve a Servicios → NFS → Exportaciones → Añadir
    • Carpeta: backup_clientes
    • Permitir acceso desde: 192.168.1.0/24
    • Modo: lectura/escritura
    • Guarda y aplica.
  7. Si usas SMB: crea un recurso compartido backup_clientes con acceso para el usuario de copia.

3) Montar la carpeta compartida en el cliente Ubuntu Server

Opcion A: vía NFS

sudo apt update
sudo apt install nfs-common -y
sudo mkdir -p /mnt/nas_backup
sudo mount -t nfs 192.168.1.50:/backup_clientes /mnt/nas_backup

Comprobar acceso:

touch /mnt/nas_backup/prueba.txt
ls -l /mnt/nas_backup

Opcion B: vía SMB

sudo apt install cifs-utils -y
sudo mkdir -p /mnt/nas_backup
sudo mount -t cifs //192.168.1.50/backup_clientes /mnt/nas_backup -o username=usuario,password=contraseña

Comprobar acceso:

touch /mnt/nas_backup/test.txt
ls /mnt/nas_backup

Información

Para montar automáticamente al inicio, añade la entrada en /etc/fstab.

4) Crear el script de copia de seguridad

  1. Crear el archivo de script:

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

  2. Contenido del script:

    #!/bin/bash
    # Script de copia de seguridad hacia el NAS
    
    ORIGEN="/etc"
    DESTINO="/mnt/nas_backup/$(hostname)_backup_$(date +%Y%m%d_%H%M%S).tar.gz"
    
    tar -czf "$DESTINO" "$ORIGEN"
    
    echo "$(date): Copia de seguridad completada -> $DESTINO" >> /var/log/backup_nas.log
    

  3. Dar permisos de ejecución:

  sudo chmod +x /usr/local/bin/backup_nas.sh
4. Probar manualmente:
sudo /usr/local/bin/backup_nas.sh
Verificar archivo creado:
ls /mnt/nas_backup
cat /var/log/backup_nas.log

5) Programar la tarea con cron

  1. Editar el cron del sistema:

    sudo crontab -e
    

  2. Añadir la tarea (ejemplo: ejecutar cada día a las 2:00 AM):

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

  3. Guardar y verificar:
    sudo crontab -l
    

Información

El sistema ejecutará la copia automáticamente a la hora indicada.

6) Restaurar una copia de seguridad

  1. Listar copias disponibles:
    ls /mnt/nas_backup
    
    Ejemplo de salida:
    ubuntu-server_backup_20251110_020000.tar.gz
    
  2. Crear directorio temporal de restauración:
    mkdir ~/restauracion_etc
    
  3. Extraer contenido:
    tar -xzf /mnt/nas_backup/ubuntu-server_backup_20251110_020000.tar.gz -C ~/restauracion_etc
    
  4. Comprobar contenido restaurado:
    ls ~/restauracion_etc/etc/
    
  5. Restaurar un archivo específico (ejemplo hosts):
    sudo cp ~/restauracion_etc/etc/hosts /etc/hosts
    

7) Entregable de la práctica

Un informe en formato PDF que incluya:

  • Capturas o comandos que demuestren:
  • Montaje correcto del NAS (mount o /etc/fstab).
  • Script de backup funcionando.
  • Archivo de copia generado en el NAS.
  • Registro /var/log/backup_nas.log.
  • Entrada en crontab -l.
  • Restauración de la copia.

8) Rúbrica de evaluación

Criterio Ponderación
Montaje correcto del NAS (NFS o SMB) 15%
Script funcional y probado 25%
Programación automática con cron 25%
Restauración completa y verificada 25%
Claridad de documentación y evidencias 10%

9) Extensiones opcionales

  • Sustituir tar por rsync para copias incrementales:
    rsync -av --delete /etc/ /mnt/nas_backup/etc_incremental/
    
  • Implementar rotación de copias (mantener solo las 5 últimas).
  • Enviar correo tras la copia (con mail o ssmtp).
  • Configurar montaje automático del NAS en /etc/fstab.

Resultado esperado

El equipo Ubuntu Server debe:

  • Realizar automáticamente copias comprimidas de /etc hacia el NAS.
  • Registrar la actividad en /var/log/backup_nas.log.
  • Permitir restaurar ficheros específicos en caso de pérdida.
  • Mantener las copias accesibles desde OMV para su verificación.