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/backup
mount /dev/vdb /mnt/backup
El 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.gz
2.- 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.sh
Revisamos que la copia se haya realizado satisfactoriamente.
ls -lah /mnt/backup
La 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 /bin
reiniciamos 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
lsblk
En 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/sistema
mkdir /mnt/sistema/boot
Ahora montamos las particiones
mount /dev/vda /mnt1/sistema
mount /dev/vda3 /mnt/sistema/boot
Se crea la carpeta de respaldo y se monta la unidad donde tenemos el respaldo
mkdir /mnt/respaldo
mnt /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-owner
Opciones:
-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.