← Teoría

Practica 21: Copias de Seguridad y Automatizacion en Linux

Modulo: MF0219_2 — Instalacion y Configuracion de Sistemas Operativos
Unidad Formativa: UF0852 — Instalacion y actualizacion de sistemas operativos
Bloque: Clonacion y copias de seguridad
Duracion estimada: 5 horas (1 sesion)
Modalidad: Trabajo individual
Herramientas: Oracle VirtualBox + VM con Ubuntu + Duplicati
Sesion intensiva de terminal: Esta practica se desarrolla principalmente en la terminal de Linux. Tendras que escribir comandos, crear scripts y programar tareas automaticas. Asegurate de tener el terminal abierto y listo antes de comenzar. No te preocupes si al principio los comandos parecen complejos: sigue los pasos uno a uno y pronto veras como todo encaja.
Escenario: Eres el administrador de sistemas de una pequena empresa que utiliza un servidor Linux (Ubuntu). Tu responsable te ha pedido que configures un sistema de copias de seguridad automatizadas para proteger los datos criticos de la empresa. Debes implementar diferentes estrategias de backup (manual, incremental, programado y con cifrado) y documentar todo el proceso para que cualquier companero pueda mantenerlo en el futuro.

Objetivos de la practica

  • Utilizar el comando tar para crear copias de seguridad manuales comprimidas y restaurar archivos.
  • Utilizar rsync para sincronizar directorios de forma incremental, copiando solo los cambios.
  • Automatizar tareas de backup mediante cron, el programador de tareas de Linux.
  • Instalar y configurar Duplicati como herramienta grafica de backup con cifrado integrado.
  • Escribir un script de shell (bash) que realice copias de seguridad automaticas con registro de actividad.

Requisitos previos

Antes de comenzar, verifica que cumples todos los requisitos marcando cada casilla:

Preparar el disco de backup: Si aun no tienes un segundo disco montado, sigue estos pasos para crearlo en VirtualBox y montarlo:
# 1. Apaga la VM y anade un disco virtual de 10 GB en VirtualBox
#    (Configuracion > Almacenamiento > Controlador SATA > Anadir disco duro)

# 2. Inicia la VM y formatea el nuevo disco
sudo fdisk /dev/sdb        # Crea una particion nueva (n, p, 1, Enter, Enter, w)
sudo mkfs.ext4 /dev/sdb1   # Formatea la particion

# 3. Crea el punto de montaje y monta el disco
sudo mkdir -p /mnt/backup
sudo mount /dev/sdb1 /mnt/backup

# 4. Dale permisos al usuario
sudo chown $USER:$USER /mnt/backup

# 5. (Opcional) Anade al fstab para montaje automatico
echo '/dev/sdb1 /mnt/backup ext4 defaults 0 2' | sudo tee -a /etc/fstab

Parte 1 — Backup manual con tar (40 min)

El comando tar (Tape ARchiver) es la herramienta clasica de Linux para crear archivos comprimidos que contienen multiples ficheros y directorios. Es ideal para crear copias de seguridad puntuales.

1.1 Crear archivos de prueba

  1. Abre un terminal con Ctrl+Alt+T.
  2. Crea un directorio de trabajo con archivos de ejemplo:
# Crear directorio de datos de prueba
mkdir -p ~/datos_empresa/{documentos,contabilidad,proyectos}

# Crear archivos de ejemplo
echo "Informe trimestral Q1 2026" > ~/datos_empresa/documentos/informe_q1.txt
echo "Presupuesto anual 2026" > ~/datos_empresa/contabilidad/presupuesto.txt
echo "Plan de proyecto Alpha" > ~/datos_empresa/proyectos/alpha.txt
echo "Base de datos de clientes" > ~/datos_empresa/clientes.csv
date > ~/datos_empresa/fecha_creacion.txt

# Verificar la estructura creada
ls -lR ~/datos_empresa/

1.2 Crear backup comprimido con tar

  1. Ejecuta el siguiente comando para crear un archivo .tar.gz comprimido:
# Crear backup comprimido con fecha en el nombre
tar -czvf /mnt/backup/backup_datos_$(date +%Y%m%d_%H%M%S).tar.gz -C ~/ datos_empresa/

# Explicacion de las opciones:
#   -c  = Create (crear archivo)
#   -z  = Comprimir con gzip
#   -v  = Verbose (mostrar archivos procesados)
#   -f  = File (nombre del archivo de salida)

1.3 Listar contenido del backup

# Ver el contenido del backup sin extraerlo
tar -tzvf /mnt/backup/backup_datos_*.tar.gz

1.4 Eliminar originales y restaurar

  1. Elimina el directorio original para simular una perdida de datos.
  2. Restaura desde el backup y verifica que todo esta correcto.
# Eliminar los datos originales (simular perdida)
rm -rf ~/datos_empresa/

# Verificar que se han eliminado
ls ~/datos_empresa/
# Deberia dar error: No such file or directory

# Restaurar desde el backup
tar -xzvf /mnt/backup/backup_datos_*.tar.gz -C ~/

# Verificar la restauracion
ls -lR ~/datos_empresa/
cat ~/datos_empresa/documentos/informe_q1.txt

Tabla de comandos y resultados

Comando ejecutado Resultado obtenido Observaciones
tar -czvf (crear backup)
tar -tzvf (listar contenido)
rm -rf (eliminar originales)
tar -xzvf (restaurar)

Captura 1: Proceso completo de backup y restauracion con tar

📷

Pega una captura (Ctrl+V) o arrastra una imagen aqui

Terminal mostrando la creacion del tar.gz, listado del contenido, eliminacion y restauracion exitosa

Preview

Parte 2 — Sincronizacion con rsync (50 min)

El comando rsync es una herramienta avanzada de sincronizacion que solo copia los archivos que han cambiado. Esto lo hace mucho mas eficiente que tar para backups diarios, ya que no necesita copiar todo cada vez.

2.1 Crear carpeta de origen con archivos

# Crear estructura de archivos de origen
mkdir -p ~/proyecto_web/{css,js,img,html}

echo "body { margin: 0; }" > ~/proyecto_web/css/estilos.css
echo "console.log('Hola');" > ~/proyecto_web/js/app.js
echo "<html><body>Inicio</body></html>" > ~/proyecto_web/html/index.html
echo "Logo de la empresa" > ~/proyecto_web/img/logo.txt
echo "README del proyecto" > ~/proyecto_web/README.md

# Ver la estructura
ls -lR ~/proyecto_web/

2.2 Primera sincronizacion con rsync

  1. Crea el directorio de destino en el disco de backup.
  2. Ejecuta rsync para hacer la primera copia completa.
# Crear directorio de destino
mkdir -p /mnt/backup/rsync_proyecto

# Primera sincronizacion (copia completa)
rsync -avh ~/proyecto_web/ /mnt/backup/rsync_proyecto/

# Explicacion de las opciones:
#   -a  = Archive (preserva permisos, fechas, enlaces, etc.)
#   -v  = Verbose (muestra los archivos copiados)
#   -h  = Human-readable (tamanos legibles)

# Verificar la copia
ls -lR /mnt/backup/rsync_proyecto/

2.3 Modificar archivos y re-sincronizar

  1. Modifica algunos archivos del origen.
  2. Ejecuta rsync de nuevo y observa que solo se copian los archivos modificados.
# Modificar un archivo existente
echo "body { margin: 0; padding: 20px; color: #333; }" > ~/proyecto_web/css/estilos.css

# Anadir un archivo nuevo
echo "function validar() { return true; }" > ~/proyecto_web/js/validacion.js

# Re-sincronizar (solo se copian los cambios)
rsync -avh ~/proyecto_web/ /mnt/backup/rsync_proyecto/

# Observa la salida: solo aparecen los archivos modificados o nuevos

2.4 Probar la opcion --delete

Precaucion: La opcion --delete elimina del destino los archivos que ya no existen en el origen. Es muy util para mantener una replica exacta, pero puede causar perdida de datos si se usa incorrectamente. Usala siempre con cuidado.
# Eliminar un archivo del origen
rm ~/proyecto_web/img/logo.txt

# Sincronizar CON --delete (elimina en destino lo que no existe en origen)
rsync -avh --delete ~/proyecto_web/ /mnt/backup/rsync_proyecto/

# Verificar que logo.txt se ha eliminado tambien del backup
ls /mnt/backup/rsync_proyecto/img/

2.5 Sincronizacion remota por SSH (opcional)

Nota: Si tienes una segunda VM con Ubuntu disponible, puedes probar la sincronizacion remota. Si no, documenta el comando teoricamente.
# Sincronizar a otra maquina via SSH
rsync -avh -e ssh ~/proyecto_web/ [email protected]:/home/usuario/backup_remoto/

# Para que funcione sin contrasena, puedes configurar claves SSH:
# ssh-keygen -t rsa
# ssh-copy-id [email protected]

Tabla de resultados de rsync

Operacion Archivos copiados Tiempo Observaciones
Primera sincronizacion
Re-sincronizacion (tras cambios)
Sincronizacion con --delete
Sincronizacion remota (SSH)

Captura 2: Sincronizacion con rsync

📷

Pega una captura (Ctrl+V) o arrastra una imagen aqui

Terminal mostrando la primera sincronizacion, la re-sincronizacion y el resultado de --delete

Preview

Parte 3 — Crear un script de backup (40 min)

Vamos a crear un script de shell que automatice el proceso de backup. El script utilizara rsync, generara un nombre con fecha y hora, y registrara la actividad en un archivo de log.

3.1 Crear el script backup_diario.sh

  1. Crea el archivo del script con nano:
nano ~/backup_diario.sh

3.2 Contenido del script

Escribe el siguiente contenido en el editor nano. Puedes copiarlo y pegarlo:

#!/bin/bash
# =====================================================
# Script de backup diario automatizado
# Curso IFCT0309 - Administracion de Sistemas Linux
# =====================================================

# --- CONFIGURACION ---
ORIGEN="/home/$USER/datos_empresa"
DESTINO="/mnt/backup/diario"
LOG="/mnt/backup/backup.log"
FECHA=$(date '+%Y-%m-%d %H:%M:%S')
NOMBRE_BACKUP="backup_$(date '+%Y%m%d_%H%M%S')"

# --- CREAR DIRECTORIO DE DESTINO SI NO EXISTE ---
mkdir -p "$DESTINO/$NOMBRE_BACKUP"

# --- REGISTRAR INICIO ---
echo "========================================" >> "$LOG"
echo "[$FECHA] Inicio del backup" >> "$LOG"
echo "  Origen:  $ORIGEN" >> "$LOG"
echo "  Destino: $DESTINO/$NOMBRE_BACKUP" >> "$LOG"

# --- EJECUTAR RSYNC ---
rsync -avh --stats "$ORIGEN/" "$DESTINO/$NOMBRE_BACKUP/" >> "$LOG" 2>&1

# --- COMPROBAR RESULTADO ---
if [ $? -eq 0 ]; then
    echo "[$FECHA] EXITO: Backup completado correctamente" >> "$LOG"
    echo "Backup completado con exito: $DESTINO/$NOMBRE_BACKUP"
else
    echo "[$FECHA] ERROR: El backup ha fallado" >> "$LOG"
    echo "ERROR: El backup ha fallado. Revisa el log: $LOG"
fi

# --- ELIMINAR BACKUPS ANTIGUOS (mas de 7 dias) ---
find "$DESTINO" -maxdepth 1 -type d -mtime +7 -exec rm -rf {} \; 2>/dev/null
echo "[$FECHA] Limpieza de backups antiguos completada" >> "$LOG"
echo "========================================" >> "$LOG"

3.3 Hacer ejecutable y probar

  1. Guarda el archivo en nano con Ctrl+O, Enter, Ctrl+X.
  2. Dale permisos de ejecucion con chmod.
  3. Ejecuta el script manualmente para probarlo.
# Dar permisos de ejecucion
chmod +x ~/backup_diario.sh

# Verificar permisos
ls -l ~/backup_diario.sh

# Ejecutar el script manualmente
~/backup_diario.sh

# Verificar que se ha creado el backup
ls -l /mnt/backup/diario/

# Ver el registro de actividad
cat /mnt/backup/backup.log

Tabla de resultados del script

Verificacion Resultado
Permisos del script (ls -l)
Mensaje de salida del script
Directorio de backup creado
Contenido del log (ultima linea)

Captura 3: Script de backup ejecutado

📷

Pega una captura (Ctrl+V) o arrastra una imagen aqui

Terminal mostrando el script creado, los permisos, la ejecucion exitosa y el contenido del log

Preview

Parte 4 — Automatizar con cron (30 min)

cron es el programador de tareas de Linux. Permite ejecutar comandos o scripts de forma automatica en horarios definidos. La configuracion se realiza editando la tabla de tareas con crontab -e.

4.1 Formato del crontab

Cada linea del crontab tiene 5 campos de tiempo seguidos del comando a ejecutar:

# Formato:
# minuto  hora  dia_mes  mes  dia_semana  comando
#  (0-59) (0-23) (1-31) (1-12)  (0-7)
#
# 0 = domingo, 7 = domingo (ambos valen)
# * = cualquier valor
# */N = cada N unidades

Tabla de ejemplos de cron

Expresion cron Significado
0 2 * * * Todos los dias a las 2:00 de la manana
30 8 * * 1-5 De lunes a viernes a las 8:30
0 0 1 * * El dia 1 de cada mes a medianoche
*/15 * * * * Cada 15 minutos
*/30 * * * * Cada 30 minutos
0 3 * * 0 Cada domingo a las 3:00 de la manana
*/5 * * * * Cada 5 minutos

4.2 Programar el script de backup

  1. Abre el crontab de tu usuario con crontab -e.
  2. Si es la primera vez, elige el editor nano (opcion 1).
  3. Anade la linea de programacion al final del archivo.
  4. Guarda y cierra (Ctrl+O, Enter, Ctrl+X).
# Abrir el crontab para editar
crontab -e

# Anadir esta linea al final del archivo (cada 30 minutos, para pruebas):
*/30 * * * * /home/$USER/backup_diario.sh

# Guardar y salir de nano (Ctrl+O, Enter, Ctrl+X)

4.3 Verificar y comprobar

# Verificar que la tarea esta programada
crontab -l

# Esperar 30 minutos (o cambiar a */2 para cada 2 minutos como prueba rapida)

# Comprobar el log para verificar la ejecucion automatica
cat /mnt/backup/backup.log

# Ver los backups creados automaticamente
ls -lt /mnt/backup/diario/
Consejo para pruebas: Si quieres verificar mas rapido que cron funciona, cambia */30 por */2 (cada 2 minutos). Recuerda volver a ponerlo en */30 o eliminarlo cuando termines de probar para no llenar el disco.

Tabla de resultados de cron

Verificacion Resultado
Salida de crontab -l
Hora de la primera ejecucion automatica
Contenido del log tras ejecucion automatica
Numero de backups en /mnt/backup/diario/

Captura 4: Crontab configurado y funcionando

📷

Pega una captura (Ctrl+V) o arrastra una imagen aqui

Terminal mostrando crontab -l, el log de ejecucion automatica y los backups creados

Preview

Parte 5 — Duplicati: backup grafico con cifrado (50 min)

Duplicati es una herramienta de backup de codigo abierto con interfaz web. Permite crear copias de seguridad incrementales con cifrado AES-256, programar backups y restaurar archivos facilmente desde un navegador.

Tienes una guia dedicada a Duplicati con pantallazos, pasos detallados y solucion de problemas frecuentes: Guia de Duplicati en Linux →. Abrela en otra pestana mientras haces esta parte si te atascas en algun paso.

5.1 Instalar Duplicati (version estable actual)

Duplicati se distribuye como paquete .deb autocontenido (ya no requiere instalar Mono por separado). La version estable actual es la 2.2.0.1 (noviembre de 2025). Si cuando realices la practica existe una version mas reciente, sustituye el nombre del fichero por la que aparezca en duplicati.com/download.

  1. Actualizar los indices de paquetes y herramientas basicas.
  2. Descargar el paquete .deb oficial.
  3. Instalar con apt (resuelve dependencias automaticamente).
  4. Arrancar Duplicati como servicio del sistema.
# Actualizar paquetes y herramientas basicas
sudo apt update
sudo apt install -y wget

# Descargar Duplicati 2.2.0.1 estable (linux-x64-gui)
cd /tmp
wget https://updates.duplicati.com/stable/duplicati-2.2.0.1_stable_2025-11-09-linux-x64-gui.deb

# Instalar (apt resuelve dependencias por si solo)
sudo apt install -y ./duplicati-2.2.0.1_stable_2025-11-09-linux-x64-gui.deb

# Activar el servicio para que arranque con el sistema
sudo systemctl enable --now duplicati

# Comprobar que esta en marcha (debe decir "active (running)")
sudo systemctl status duplicati
Nota: si el enlace no responde, visita duplicati.com/download, copia la URL de la version Linux x64 (.deb) y sustituyela en el wget.

5.2 Primer acceso a la interfaz web (obtener el "signin link")

Desde la version 2.1, cuando Duplicati arranca por primera vez como servicio genera una contrasena aleatoria para proteger el panel de administracion. Como no la conoces, no puedes entrar con usuario y contrasena: hay que usar un enlace de inicio de sesion temporal (signin link) que el servicio imprime en sus logs.

  1. Abre el navegador de la VM y ve a http://localhost:8200. Veras una pantalla pidiendo contrasena.
  2. Abre una terminal y obten el signin link desde el log del servicio:
# Ver el log de Duplicati y buscar el enlace de acceso
sudo journalctl -u duplicati | grep -i "signin\|sign-in\|token" | tail -5

# Si no ves nada, muestra el log completo desde el ultimo arranque
sudo journalctl -u duplicati -b --no-pager | tail -40
  1. Localiza una linea con una URL del tipo http://localhost:8200/signin.html?token=.... Copiala entera (incluido el token, que es muy largo).
  2. Pegala en el navegador y pulsa Intro. Entraras directamente al panel sin que te pida contrasena.
Nota: el signin link caduca en minutos y solo sirve una vez. Si expira, reinicia el servicio (sudo systemctl restart duplicati) y vuelve a consultar el log.

5.2 bis — Fijar la contrasena del panel web

Para no depender del signin link cada vez, establece una contrasena fija para la interfaz:

  1. Una vez dentro del panel (tras usar el signin link), pulsa el icono de ajustes (arriba a la derecha) → Settings (Configuracion).
  2. Busca la seccion "Access to the user interface" (Acceso a la interfaz).
  3. Activa "Password protected" (Proteger con contrasena) y escribe una contrasena robusta. Confirmala.
  4. Pulsa "OK" para guardar. A partir de ahora, al entrar en http://localhost:8200 te pedira esa contrasena.
Importante: esta contrasena protege solo el acceso al panel de administracion. Es distinta de la frase de contrasena (passphrase) que cifra el contenido de cada backup — esa se configura en el paso 1 del asistente (seccion 5.3).

5.3 Crear un trabajo de backup

El asistente de Duplicati se divide en 5 pasos. Avanza con el boton "Siguiente" al final de cada pantalla.

Paso 1 — General y cifrado (aqui se configura la contrasena)

  1. En la pantalla principal de Duplicati, haz clic en "Anadir copia de seguridad" (o "Add backup").
  2. Selecciona "Configurar una nueva copia de seguridad" y pulsa "Siguiente".
  3. Nombre: escribe un nombre descriptivo, por ejemplo Backup Documentos Empresa.
  4. Descripcion (opcional): anota para que sirve este backup.
  5. Cifrado: en el desplegable deja la opcion por defecto AES-256 encryption, built in. Esto activa el cifrado del contenido del backup.
  6. Frase de contrasena (Passphrase): escribe una contrasena robusta (minimo 12 caracteres, con mayusculas, minusculas, numeros y simbolos).
    • Tambien puedes pulsar el boton "Generar" junto al campo y Duplicati creara una contrasena segura aleatoria.
    • Usa el icono del ojo para ver lo que escribes y evitar erratas.
  7. Repetir frase de contrasena: vuelve a escribirla (o pegala si la generaste) para confirmar. Si las dos no coinciden, Duplicati no te dejara pasar al siguiente paso.
  8. Guarda la contrasena fuera del equipo (gestor de contrasenas, papel en lugar seguro, etc.).
  9. Pulsa "Siguiente".
Atencion — la contrasena NO se puede recuperar. Duplicati cifra el backup localmente con tu contrasena y no guarda copia en ningun servidor. Si la pierdes, los datos del backup quedan inaccesibles para siempre. Apuntala antes de continuar.

Paso 2 — Destino

  1. Tipo de destino: selecciona "Carpeta local o unidad".
  2. Ruta de la carpeta: escribe /mnt/backup/duplicati.
  3. Pulsa el boton "Probar la conexion" (Test connection). Debe responder con un mensaje de exito. Si da error, revisa los permisos de la carpeta destino.
  4. Pulsa "Siguiente".

Paso 3 — Datos de origen

  1. En el arbol de carpetas, marca la casilla de /home/alumno/datos_empresa (o la carpeta de tu usuario).
  2. Pulsa "Siguiente".

Paso 4 — Programacion

  1. Marca "Ejecutar copias de seguridad automaticamente".
  2. Configura para que se ejecute cada dia a las 23:00.
  3. Pulsa "Siguiente".

Paso 5 — Opciones

  1. Deja las opciones por defecto (tamano de volumen remoto 50 MB, retencion "Mantener todas las copias de seguridad").
  2. Pulsa "Guardar" para finalizar el asistente.

5.4 Ejecutar el backup manualmente

  1. En la pantalla principal de Duplicati, localiza tu trabajo de backup.
  2. Haz clic en "Ejecutar ahora".
  3. Espera a que termine y verifica que aparece el mensaje de exito.

5.5 Backup incremental

  1. Modifica algun archivo en ~/datos_empresa/:
# Modificar un archivo
echo "Actualizacion del informe Q2 2026" >> ~/datos_empresa/documentos/informe_q1.txt

# Crear un archivo nuevo
echo "Nuevo archivo de notas" > ~/datos_empresa/notas_reunion.txt
  1. Vuelve a Duplicati y ejecuta el backup de nuevo.
  2. Observa que esta vez es mas rapido porque solo copia los cambios (incremental).

5.6 Restaurar un archivo desde Duplicati

  1. En Duplicati, haz clic en tu trabajo de backup y selecciona "Restaurar".
  2. Navega por la estructura de archivos y selecciona un archivo para restaurar.
  3. Elige la ubicacion de restauracion (puedes restaurar a una carpeta diferente, por ejemplo /tmp/restaurado/).
  4. Verifica que el archivo restaurado es identico al original.

Tabla de resultados de Duplicati

Operacion Resultado
Acceso a http://localhost:8200
Nombre del trabajo de backup
Cifrado activado (Si/No)
Primer backup (duracion y tamano)
Segundo backup incremental (duracion)
Restauracion exitosa (Si/No)

Captura 5: Duplicati configurado y funcionando

📷

Pega una captura (Ctrl+V) o arrastra una imagen aqui

Interfaz de Duplicati mostrando el trabajo de backup creado, el historial de ejecuciones y la restauracion

Preview

Parte 6 — Preguntas de reflexion

Responde a las siguientes preguntas con tus propias palabras. Cada respuesta debe tener un minimo de 3 lineas.

1. tar vs rsync: ¿Cuando usarias cada uno? Explica las diferencias principales y en que situaciones es mas adecuado cada uno.

2. ¿Por que rsync es mejor que tar para copias de seguridad diarias? Explica el concepto de "backup incremental".

3. ¿Que significa la expresion cron */5 * * * *? Explica cada campo y escribe dos ejemplos mas de expresiones cron con su significado.

4. ¿Por que es importante cifrar las copias de seguridad? ¿Que podria pasar si alguien accede a un backup sin cifrar?

5. ¿Que ventajas ofrece Duplicati frente a un script manual de backup? ¿En que situaciones preferirias usar un script y en cuales Duplicati?

Parte 7 — Reto tecnico: diseño, scripting avanzado y diagnostico (45 min)

Hasta aqui has seguido guiones. Ahora tienes que decidir tu mismo: esta parte mide tu capacidad de diseño, depuracion y razonamiento, no tu velocidad copiando comandos. Se valora mas la justificacion que el resultado final.

Reto 1 — Diseña tu estrategia 3-2-1 (15 min)

Caso: Un despacho profesional tiene ~120 GB de datos criticos (contabilidad, contratos, correo exportado). Disponen de: el servidor Ubuntu, un NAS en la red local (500 GB libres, compartido por SMB) y una cuenta de almacenamiento en la nube (100 GB gratis, subida limitada a 10 Mbps). Los datos crecen ~200 MB al dia. El responsable quiere cumplir la regla 3-2-1 y poder recuperar un fichero borrado hasta 30 dias atras.

Propon tu estrategia respondiendo a estas cuestiones. No basta con citar herramientas: tienes que justificar por que, con que frecuencia y donde va cada copia.

a) ¿Que herramienta usarias para cada uno de los tres destinos (local, NAS, nube) y por que? ¿Copia completa o incremental en cada uno?

b) Planificacion horaria: ¿cuando se ejecuta cada copia y por que a esa hora? Ten en cuenta el ancho de banda de subida y que los 120 GB iniciales no caben en la cuota gratuita de la nube.

c) Retencion: ¿como garantizas los 30 dias de historico sin llenar el NAS? Describe el esquema de rotacion (diario / semanal / mensual) y estima el espacio que ocupara al cabo de un mes.

Reto 2 — Script avanzado con validacion e integridad (20 min)

Partiendo del script backup_diario.sh de la Parte 3, crea una version nueva llamada backup_robusto.sh que añada, sin copiar plantillas de internet, las siguientes mejoras. Se valorara que el bash sea correcto, no la extension del script.

  1. Verifica que el directorio de origen existe; si no, aborta con codigo de salida distinto de 0 y registra el error.
  2. Genera un fichero .sha256 con el checksum del archivo de backup tras crearlo. En la siguiente ejecucion, valida el checksum del backup anterior antes de sobrescribirlo y registra si la verificacion es correcta o ha fallado.
  3. El log debe incluir: fecha/hora de inicio, fecha/hora de fin, tamaño del backup generado, numero de ficheros copiados y resultado final (OK / ERROR).
  4. Si quedan mas de 7 backups en el destino, elimina automaticamente los mas antiguos.
  5. Envia un mensaje al syslog del sistema con logger indicando el resultado de la ejecucion.

Pega a continuacion el contenido completo del script:

Explica brevemente que hace cada bloque del script y por que esta ahi (no que hace linea a linea: la razon detras de cada decision). 4-6 lineas.

Reto 3 — Diagnostico: el backup que no se ejecutaba (10 min)

Este reto te obliga a romper tu propio cron y diagnosticar el fallo. Haz lo siguiente en orden y documenta cada paso:

  1. Edita tu crontab y sustituye la ruta absoluta del script por una ruta relativa (por ejemplo, backup_robusto.sh en lugar de /home/usuario/scripts/backup_robusto.sh). Programa la ejecucion para dentro de 2-3 minutos.
  2. Espera al momento previsto y comprueba que no se ha creado el backup.
  3. Sin volver a poner la ruta absoluta todavia, diagnostica: revisa /var/log/syslog, journalctl -u cron y el correo local del usuario (mail o /var/mail/$USER).
  4. Identifica la entrada de log que explica el fallo y razona por que cron no ha podido ejecutarlo aunque ejecutado manualmente funciona.

Pega la linea de log relevante y tu diagnostico (causa raiz + por que el PATH de cron no es el mismo que el de tu shell interactiva):

Una vez documentado, restaura la configuracion correcta y verifica que vuelve a ejecutarse con normalidad.

Captura 6 — Reto tecnico

Adjunta una unica captura que muestre: (a) el script backup_robusto.sh ejecutado con exito, (b) el fichero .sha256 generado, y (c) las ultimas lineas del log del script.

📷

Haz clic, arrastra o pega una imagen (Ctrl+V)

Captura reto tecnico

Entrega y evaluacion

Checklist de capturas requeridas

Captura Contenido Incluida
Captura 1 Backup y restauracion con tar (crear, listar, eliminar, restaurar)
Captura 2 Sincronizacion con rsync (primera copia, re-sincronizacion, --delete)
Captura 3 Script de backup ejecutado (permisos, ejecucion, log)
Captura 4 Crontab configurado y ejecucion automatica verificada
Captura 5 Duplicati configurado (trabajo de backup, cifrado, restauracion)
Captura 6 Reto tecnico: ejecucion de backup_robusto.sh + .sha256 + ultimas lineas del log

Formato del mensaje en Discord

Nombre: [Tu nombre y apellidos]
Practica: Practica 21 - Copias de Seguridad y Automatizacion en Linux
[Adjuntar documento PDF y capturas de pantalla]

Criterios de evaluacion

Criterio Puntuacion
Backup manual con tar (Parte 1) 1.0 punto
Sincronizacion con rsync (Parte 2) 2.0 puntos
Script de backup (Parte 3) 1.5 puntos
Automatizacion con cron (Parte 4) 1.0 punto
Duplicati con cifrado (Parte 5) 1.0 punto
Preguntas de reflexion (Parte 6) 1.0 punto
Reto tecnico: diseño 3-2-1, script robusto y diagnostico (Parte 7) 2.5 puntos
Total 10 puntos

Penalizaciones

Motivo Penalizacion
Entrega fuera de plazo (sin justificacion) -2 puntos
Capturas insuficientes (menos de 3 de las 5 requeridas) -1 punto
Respuestas copiadas de Internet o de otro companero -3 puntos
Tablas de datos incompletas (mas del 30% en blanco) -1.5 puntos
Respuestas de una sola linea en preguntas que piden minimo 3 lineas -0.5 puntos por pregunta
Fecha limite: Indicada por el profesor en el canal de Discord.

Lista de verificacion de entrega (firma del alumno)

Antes de subir tu practica, confirma que has incluido todo:

Dato Tu respuesta
Nombre del alumno
Firma
Fecha de entrega

Entrega esta practica en el canal #entrega-practicas del Discord del curso.

Formato del mensaje: Nombre: [tu nombre] | Practica: Practica 21 - Copias de Seguridad y Automatizacion en Linux

Practica correspondiente al Bloque de Clonacion y copias de seguridad (Practica 21)