En esta entrada se explicara como realizar un respaldo completo de un sistema linux mediante el comando tar.
- Se realizara el respaldo
- Se provocara un error en el sistema
- Se restaurara nuestro respaldo
El comando tar es una herramienta de línea de comandos utilizada en sistemas operativos basados en Unix, como Linux y macOS, para crear, modificar y extraer archivos comprimidos y archivos de almacenamiento en un solo comando. El nombre «tar» proviene de «tape archive», ya que originalmente se usaba para archivar datos en cintas magnéticas, esto nos da una idea de lo antiguo que es este comando.
Este es un ejemplo teórico que funciona en situación controlada con las versiones de software mencionadas, asegúrese de realizar pruebas en un entorno de laboratorio antes de ponerlo en practica en produccion.
Uso básico del comando tar
tar -cvf archivo.tar directorio/
Opciones que usaremos para la copia de seguridad
-c: Crea un nuevo archivo.
-v: Muestra la progresión del comando.
-p: Conserva los permisos de los archivos.
-z: Utiliza compresión gzip.
-f: Especifica el nombre del archivo de salida.
--exclude: Omite ciertos directorios para evitar la copia de archivos temporales y otros archivos que no son esenciales para la restauración del sistema.

1.- Montamos la unidad donde se encontrara el respaldo
su -mkdir /mnt/backupmount /dev/vdb /mnt/backupEl comando para realizar el respaldo del sistema completoquedaria dela siguiente forma.
Para mas detalles sobre los archivos excluidos en este respaldo favor dirigirse a https://linuxhandbook.com/linux-directory-structure/
tar -cvpzf /mnt/backup/backup2.tar.gz --exclude=proc --exclude=sys --exclude-dev/pts --exclude=mnt --exclude=media /Podemos verificar el contenido del archivo de respaldo con el comando
tar -tvf /mnt/media/backup2.tar.gz2.- Script de respaldo
Podemos automatizar el proceso con el siguiente script el cual guardaremos como fullsystemBackup.sh
vim fullsystemBackup.sh#!/bin/bash
TODAY=`/bin/date +%Y%m%d-%H%M`
FILENAME="FullBackup-${TODAY}"
tar -cvpzf /mnt/backup/${FILENAME}.tar.gz --exclude=proc --exclude=sys --exclude=dev/pts --exclude=tmp --exclude=mnt --exclude=media /
exit 0
Asignamos permisos de ejecucion y ejecutamos el script
chmod 750 /fullsystemBackup.sh./fullsystemBackup.shRevisamos que la copia se haya realizado satisfactoriamente.
ls -lah /mnt/backupLa copia se ha realizado correctamente.
3.- Borramos archivos del sistema
Ahora provocaremos un error en el sistema un borrado intencionalmente una carpeta indispensable para que cuando el sistema arranque nos de un error.
rm -rf /binreiniciamos el sistema y vemos que este no arranca.
4.- Restauramos nuestra copia
Arrancamos nuestro sistema mediante una iso live de linux, en mi caso utilizare una iso de gentoo.
Verificamos donde se encuentra nuestro sistema de archivos con lsblk
lsblkEn mi caso para este sistema yo solo cuento con 3 particiones / /boot y swap, dependiendo si cuentas con mas particiones deberías montarlas para garantizar que se restauren todos los archivos de tu copia, en mi caso solo montare / y /boot
Se crean las carpetas correspondientes para montar el sistema de archivos
mkdir /mnt/sistemamkdir /mnt/sistema/bootAhora montamos las particiones
mount /dev/vda /mnt1/sistemamount /dev/vda3 /mnt/sistema/bootSe crea la carpeta de respaldo y se monta la unidad donde tenemos el respaldo
mkdir /mnt/respaldomnt /dev/sdb /mnt/respaldo
Ya podemos restaurar el respaldo desde el archivo tar hacia el sistema de archivos con el comando tar -xvzf /ruta/respaldo.tar.gz -C /ruta/sistema de archivos
tar -xvzf /mnt/respaldo/FullBackup.tar.bz -C /mnt/sistema --numeric-ownerOpciones:
-x: Se indica que extraiga el archivo indicado por la opcion f
-C: Se indica que cambie el directorio de extraccion a una ruta especificada
--nummeric-owner: Indica que restaure los propietarios numericos de los archivos.
Esperamos a que termine de extraer los archivos
En este caso todo funciona adecuadamente.
