Skip to content

Práctica 1: Backup del directorio home con tar

Objetivo

El objetivo de esta práctica es realizar copias de seguridad del directorio home de tu usuario de manera recursiva, utilizando el comando tar en un sistema Ubuntu 24.04. Aprenderás a crear copias de seguridad completas, diferenciales e incrementales, y a automatizar el proceso mediante cron.

Contexto

El directorio home en Ubuntu 24.04 se encuentra en /home/tu_usuario, donde tu_usuario es el nombre del usuario. Este directorio contiene archivos personales, configuraciones y otros datos importantes. Es fundamental realizar copias de seguridad regulares de este directorio para evitar la pérdida de información valiosa.


Material necesario

  • Sistema operativo: Ubuntu 24.04.
  • Comando principal: tar (para crear archivos comprimidos).
  • Compresión: gzip.
  • Acceso: Permisos de administrador o usuario con permisos suficientes para manipular cron y ejecutar scripts.

Desarrollo

Instrucciones

  1. Copia de seguridad completa del directorio home: Realiza una copia de seguridad recursiva del directorio home utilizando el comando tar y comprimiéndola con gzip:
tar -cvzf /backups/home_backup.tar.gz /home/
  • c: Crear un archivo.
  • v: Modo verbose, muestra los archivos procesados.
  • z: Comprimir con gzip.
  • f: Especifica el nombre del archivo de salida.

  • Copia de seguridad diferencial: Modifica al menos 2 archivos y añade 1 archivo nuevo a tu directorio home. Luego, realiza una copia de seguridad diferencial utilizando el siguiente comando:

tar -cvzf /backups/home_diff_backup.tgz -g /backups/backups.log /home/

La opción --listed-incremental utiliza un archivo .snar para registrar los archivos que han cambiado desde la última copia de seguridad.

  1. Modificación y eliminación de archivos: Modifica al menos 2 archivos existentes y elimina 1 archivo de tu directorio home.

  2. Automatización de la copia de seguridad completa con cron: Automatiza la copia de seguridad completa para que se ejecute el día 1 de cada mes a las 2:00 AM. Para ello, crea un script llamado copiaTotal.sh Dale permisos de ejecución al script:

chmod +x /backups/copiaTotal.sh

Luego, añade la tarea cron para ejecutar el script automáticamente todos los viernes a las 17:00:

crontab -e

Añade la siguiente línea al archivo cron:

0 2 1 * * /backups/copiaTotal.sh
  1. Automatización de la copia diferencial con cron: Automatiza la copia diferencial para que se ejecute los días 14 y 28 de cada mes a las 2:00 AM. Crea un script de respaldo diferencial llamado copiaDifferencial.sh y añádelo a cron:
crontab -e

Añade esta línea:

0 2 14,28 * * /backups/copiaDifferencial.sh
  1. Restauración de archivos del directorio home: Elimina el directorio home o los archivos dentro de él y restaura desde la copia de seguridad realizada:

    rm -rf /home/tu_usuario
    tar -xvjf /backups/home_backup.tgz -C /home
    

Consideraciones de seguridad

  1. Permisos de archivo: Asegúrate de que solo los usuarios autorizados puedan acceder a las copias de seguridad. Puedes ajustar los permisos de los archivos con:
chmod 600 /backups/home_backup.tgz
  1. Verificación de integridad: Utiliza herramientas como sha256sum o md5sum para verificar la integridad de las copias de seguridad:
sha256sum /backups/home_backup.tgz
  1. Almacenamiento remoto: Para una mayor seguridad, se recomienda almacenar las copias de seguridad en un servidor remoto o en la nube.

Reflexión

Al finalizar esta práctica, deberías ser capaz de:

  • Realizar copias de seguridad completas, diferenciales e incrementales de tu directorio home.
  • Comprimir las copias de seguridad para ahorrar espacio.
  • Automatizar el proceso de copias de seguridad utilizando cron.
  • Restaurar datos desde una copia de seguridad.

Entrega

Entrega un informe que incluya:

  • Capturas de pantalla de cada paso realizado.
  • Explicación de cada tipo de copia de seguridad y cuándo utilizar cada una.
  • Reflexión personal sobre la importancia de las copias de seguridad y las medidas de seguridad implementadas.
  • Cualquier problema encontrado y cómo lo solucionaste.
  • El script copiaTotal.sh y copiaDifferencial.sh utilizados para la automatización.