Skip to content

Práctica guiada 1.3: Backup Incremental con tar

Comando tar -g: Respaldo Incremental con Archivo de Registro

El comando tar en sistemas Unix y Linux es utilizado para crear archivos comprimidos, empaquetar varios archivos en uno solo y realizar respaldos. Uno de sus modos más poderosos es el respaldo incremental, donde solo se respaldan los archivos que han cambiado desde el último respaldo completo. Para lograr esto, tar ofrece la opción -g, que permite hacer uso de un archivo de registro (o “registro de cambios”) para llevar un control de qué archivos han sido respaldados.

¿Qué es un respaldo incremental?

Un respaldo incremental es un tipo de copia de seguridad en la que solo se respaldan los archivos que han cambiado desde el último respaldo completo o incremental. Esto permite ahorrar espacio de almacenamiento, ya que no se repiten los archivos que no han sido modificados.

El uso del parámetro -g en tar facilita la creación de respaldos incrementales, ya que permite a tar hacer un seguimiento de los archivos que ya han sido respaldados a través de un archivo de registro. Este archivo actúa como un “punto de referencia” para las próximas copias de seguridad.


Sintaxis del comando tar -g

La sintaxis básica del comando tar con la opción -g es la siguiente:

tar -czf archivo.tar.gz -g archivo_de_registro archivo_a_respaldo
  • -c: Crea un archivo comprimido.
  • -z: Comprime con gzip (opcional, se puede omitir si no se desea compresión).
  • -f archivo.tar.gz: Especifica el nombre del archivo comprimido de salida.
  • -g archivo_de_registro: Especifica el archivo de registro donde tar almacenará información sobre el estado de los archivos respaldados.
  • archivo_a_respaldo: Los archivos o directorios que quieres respaldar.

Proceso de Respaldo Incremental con tar -g

1. Respaldo Completo Inicial

El primer paso en el proceso de respaldo es crear una copia completa de los archivos. Este será el respaldo inicial y se usará como referencia para los siguientes respaldos incrementales.

Ejemplo de respaldo completo:

Supongamos que tenemos un directorio llamado /home/usuario/documentos y queremos hacer un respaldo completo de este directorio. Además, queremos usar el archivo /home/usuario/backup_registro como archivo de registro.

Ejecutamos el siguiente comando:

tar -czf backup.tar.gz -g /home/usuario/backup_registro /home/usuario/documentos
  • backup.tar.gz: El archivo comprimido donde se guardará el respaldo.
  • /home/usuario/backup_registro: El archivo de registro que tar utilizará para rastrear los cambios.
  • /home/usuario/documentos: El directorio que estamos respaldando.

Este comando crea un archivo comprimido llamado backup.tar.gz que contiene todos los archivos del directorio /home/usuario/documentos. Además, crea (o actualiza) el archivo de registro backup_registro, que guarda información sobre los archivos respaldados (por ejemplo, sus nombres, tamaños y fechas de modificación).

2. Respaldo Incremental

Ahora, supongamos que realizas algunos cambios en el directorio /home/usuario/documentos (agregas, modificas o eliminas archivos). Para hacer un respaldo incremental, solo respaldaremos los archivos que han cambiado desde el último respaldo (el respaldo completo que acabamos de hacer).

Ejecutamos el siguiente comando:

tar -czf backup_incremental.tar.gz -g /home/usuario/backup_registro /home/usuario/documentos
  • backup_incremental.tar.gz: El archivo comprimido donde se guardarán los archivos incrementales.
  • /home/usuario/backup_registro: El archivo de registro donde tar almacenará los cambios desde el último respaldo.
  • /home/usuario/documentos: El directorio que estamos respaldando de nuevo.

En este caso, tar comparará el estado actual de los archivos en /home/usuario/documentos con el archivo de registro /home/usuario/backup_registro. Solo respaldará los archivos que han cambiado o que son nuevos desde el último respaldo.

3. Respaldo Incremental Adicional

Si realizas más cambios en los archivos y deseas hacer otro respaldo incremental, simplemente ejecutas el mismo comando nuevamente:

tar -czf backup_incremental2.tar.gz -g /home/usuario/backup_registro /home/usuario/documentos

Cada vez que ejecutes el comando, tar solo respaldará los archivos que han cambiado desde el último respaldo.


¿Qué hace el archivo de registro?

El archivo de registro (especificado con la opción -g) es fundamental para realizar respaldos incrementales. Este archivo guarda información sobre los archivos respaldados, tales como:

  • Nombre de archivo
  • Fecha y hora de modificación
  • Tamaño
  • Permisos

Al usar este archivo de registro, tar puede determinar qué archivos se han modificado o añadido desde el último respaldo y realizar un respaldo solo de esos archivos, sin tener que respaldar todo el contenido nuevamente.

Ver el archivo de registro

Aunque el archivo de registro no está diseñado para ser editado manualmente, se puede visualizar con un editor de texto. Sin embargo, los detalles de su formato son específicos de tar y no deben modificarse.


Ventajas del Respaldo Incremental con tar -g

  • Eficiencia de almacenamiento: Solo se respaldan los archivos que han cambiado, lo que ahorra espacio en disco.
  • Rápidez: Los respaldos incrementales son mucho más rápidos que los respaldos completos, ya que solo se procesan los archivos modificados.
  • Reducción de tiempo de ejecución: Al hacer respaldos incrementales, se reduce significativamente el tiempo necesario para completar el respaldo.

Consideraciones y Precauciones

  1. Espacio en disco: Aunque los respaldos incrementales ahorran espacio, debes asegurarte de tener suficiente espacio en disco para almacenar el archivo de registro y los respaldos incrementales.

  2. Manejo de copias completas: Aunque los respaldos incrementales son útiles, es importante mantener de vez en cuando un respaldo completo, especialmente si el archivo de registro se pierde o se corrompe. Sin un respaldo completo, los respaldos incrementales no serán útiles.

  3. Restauración de respaldos incrementales: La restauración de un respaldo incremental requiere primero restaurar el respaldo completo y luego aplicar cada uno de los respaldos incrementales en el orden correcto.


Ejemplo de Restauración de Respaldos Incrementales

Si tienes un respaldo completo y varios incrementales y deseas restaurarlos, deberás hacer lo siguiente:

  1. Restaurar el respaldo completo:
tar -xzf backup.tar.gz -C /ruta/de/restauracion
  1. Restaurar los respaldos incrementales, en orden:
tar -xzf backup_incremental.tar.gz -C /ruta/de/restauracion
tar -xzf backup_incremental2.tar.gz -C /ruta/de/restauracion

Esto asegurará que todos los cambios realizados entre los respaldos incrementales se apliquen en el orden correcto.


Conclusión

El uso de tar -g es una herramienta poderosa para realizar respaldos incrementales en sistemas Unix y Linux. Al mantener un archivo de registro que rastrea los cambios en los archivos respaldados, puedes optimizar el uso del espacio en disco y reducir el tiempo necesario para hacer respaldos regulares. Sin embargo, es importante comprender cómo manejar los respaldos completos e incrementales y tener cuidado al restaurar los datos.