Crear y restaurar una copia de seguridad con tar en Linux

CompTIABeginner
Practicar Ahora

Introducción

En esta práctica de laboratorio, aprenderás el proceso fundamental para crear y restaurar una copia de seguridad del sistema de archivos en un entorno Linux utilizando la utilidad de línea de comandos tar (tape archive). El objetivo principal es obtener experiencia práctica en tareas esenciales de administración de sistemas, incluyendo la gestión de permisos de usuario y el manejo de archivos comprimidos. Utilizarás el comando sudo para ejecutar operaciones con privilegios elevados cuando sea necesario acceder y respaldar directorios críticos del sistema, específicamente el directorio /home, que contiene los datos de los usuarios.

La práctica te guiará a través de un flujo de trabajo real utilizando la cuenta de usuario predeterminada labex con sudo para las tareas administrativas. Crearás un archivo comprimido de todo el directorio /home y verificarás que se haya generado correctamente. Para simular un escenario de restauración, te desplazarás a un directorio temporal, /tmp, y extraerás el contenido de tu copia de seguridad. Finalmente, comprobarás que los archivos y la estructura de directorios se hayan restaurado correctamente en la nueva ubicación, confirmando así la integridad de tu proceso de respaldo y restauración.

Esta es una Práctica Guiada, que proporciona instrucciones paso a paso para ayudarte a aprender y practicar. Sigue las instrucciones cuidadosamente para completar cada paso y ganar experiencia práctica. Los datos históricos muestran que esta es una práctica de nivel principiante con una tasa de finalización del 99%. Ha recibido una tasa de valoraciones positivas del 100% por parte de los alumnos.

Comprender el entorno actual

En este paso, conocerás tu entorno actual y aprenderás a utilizar sudo para tareas administrativas. El usuario labex tiene la capacidad de ejecutar comandos con privilegios elevados mediante sudo (superuser do), lo que te permite realizar tareas de administración sin necesidad de cambiar permanentemente a la cuenta del usuario root.

El uso de sudo es una de las mejores prácticas de seguridad, ya que otorga privilegios elevados temporales para comandos específicos mientras mantienes tu contexto de usuario. Este enfoque es más seguro que cambiar totalmente al usuario root, ya que reduce el riesgo de ejecutar accidentalmente comandos peligrosos.

Primero, verifiquemos tu identidad de usuario actual y tu ubicación ejecutando los comandos whoami y pwd (print working directory).

Comprueba quién eres:

whoami

La salida debería ser labex:

labex

A continuación, comprueba tu directorio actual:

pwd

La salida debería mostrar que te encuentras en el directorio de proyectos del usuario labex:

/home/labex/project

Puedes probar tus privilegios de sudo ejecutando un comando sencillo que requiera acceso administrativo. Vamos a listar el contenido del directorio /root, que normalmente requiere permisos elevados:

sudo ls /root

Este comando se ejecutará correctamente, demostrando que tienes los privilegios de sudo necesarios para realizar tareas administrativas. El comando sudo te otorgará temporalmente los permisos requeridos para acceder a áreas restringidas del sistema de archivos.

Ahora que comprendes tu entorno y tus capacidades con sudo, estás listo para crear una copia de seguridad en el siguiente paso.

Crear un archivo de copia de seguridad del directorio /home

En este paso, crearás una copia de seguridad del directorio /home utilizando el comando tar con sudo. La utilidad tar (tape archiver) es una herramienta estándar en Linux para crear, ver y extraer archivos comprimidos. Un archivo de este tipo es un único fichero que contiene múltiples archivos y directorios en su interior, lo que facilita su almacenamiento y transporte.

Actualmente has iniciado sesión como el usuario labex y tu directorio de trabajo actual es /home/labex/project. Crearás el archivo de copia de seguridad en tu directorio personal (home), que es accesible para tu cuenta de usuario.

El comando que utilizarás es sudo tar -cvf ~/backup.tar /home. Desglosemos las opciones:

  • sudo: Otorga los privilegios necesarios para leer todos los archivos en el directorio /home, incluidos los que pertenecen a otros usuarios.
  • -c (create): Esta opción le indica a tar que cree un nuevo archivo.
  • -v (verbose): Muestra en pantalla cada archivo a medida que se añade al archivo comprimido. Es útil para ver el progreso de la operación.
  • -f (file): Esta opción te permite especificar el nombre del archivo resultante. Debe ir seguida inmediatamente por el nombre del archivo. En nuestro caso, es ~/backup.tar. El símbolo ~ es un atajo para tu directorio personal (/home/labex).
  • /home: Este es el directorio de origen del cual quieres hacer la copia de seguridad.

Ahora, ejecuta el comando en tu terminal para crear el archivo de respaldo:

sudo tar -cvf ~/backup.tar /home

Debido a que utilizaste la opción -v, verás una larga lista de archivos desplazándose por tu pantalla a medida que se agregan al archivo backup.tar. La salida se verá similar a esto, enumerando todos los archivos dentro del directorio /home:

tar: Removing leading `/' from member names
/home/
/home/labex/
/home/labex/.bashrc
/home/labex/.profile
/home/labex/.zshrc
/home/labex/project/
/home/labex/.zsh_history
...

El mensaje tar: Removing leading '/' from member names es normal. Significa que tar está guardando las rutas dentro del archivo de forma relativa al directorio especificado, lo cual es una práctica estándar para asegurar la portabilidad del archivo.

En el siguiente paso, verificarás que el archivo backup.tar se haya creado correctamente.

Verificar la creación del archivo backup.tar

En este paso, verificarás que el archivo backup.tar se haya creado correctamente en el paso anterior. Después de realizar una operación crítica como una copia de seguridad, siempre es una buena práctica confirmar que el archivo de salida esperado existe.

Dado que creaste el archivo de respaldo en tu directorio personal (~/backup.tar), necesitas revisar dicho directorio. La forma más sencilla de comprobar la existencia del archivo es utilizando el comando ls (list) con la ruta completa o navegando hacia tu directorio personal.

Ejecuta el comando ls para revisar tu directorio personal:

ls ~

El comando listará todos los archivos y directorios en tu home. Deberías ver el archivo backup.tar en la salida:

backup.tar

Alternativamente, puedes verificar el archivo directamente usando su ruta completa para ver más detalles:

ls -l ~/backup.tar

La salida se verá algo parecido a esto:

-rw-r--r-- 1 root root 10240 <Fecha> <Hora> /home/labex/backup.tar

Este listado detallado te da más seguridad, mostrando que el archivo existe y tiene un tamaño superior a cero, que es lo que se espera de una copia de seguridad. Ten en cuenta que el propietario del archivo es root porque lo creaste usando sudo, pero está almacenado en tu directorio personal accesible.

Ahora que has creado y verificado con éxito la copia de seguridad, el siguiente paso es simular un escenario de restauración.

Cambiar al directorio /tmp para la restauración

En este paso, cambiarás tu directorio actual a /tmp. Para practicar la restauración de una copia de seguridad, lo mejor es extraer los archivos en una ubicación neutral primero. Esto evita sobrescribir accidentalmente archivos existentes y te permite inspeccionar los datos restaurados antes de moverlos a su destino final. El directorio /tmp es una ubicación estándar en los sistemas Linux para archivos temporales y es perfecto para este propósito.

Para navegar entre directorios en el sistema de archivos de Linux, se utiliza el comando cd (change directory). Actualmente te encuentras en el directorio /root.

Para cambiar al directorio /tmp, ejecuta el siguiente comando:

cd /tmp

Después de ejecutar el comando, es posible que el indicador de tu terminal no parezca diferente, pero tu ubicación en el sistema de archivos ha cambiado. Puedes confirmar tu nueva ubicación utilizando el comando pwd (print working directory), que muestra la ruta completa de tu directorio actual.

pwd

La salida debería confirmar que ahora estás en /tmp:

/tmp

Ahora que estás en el directorio /tmp, estás listo para extraer el contenido del archivo backup.tar que creaste anteriormente.

Extraer el archivo de copia de seguridad en el directorio actual

En este paso, extraerás el contenido del archivo backup.tar en tu directorio actual, /tmp. Este proceso a menudo se denomina "restaurar" desde una copia de seguridad. Utilizarás el comando tar nuevamente, pero con opciones diferentes para realizar la extracción.

Te encuentras actualmente en el directorio /tmp. El archivo de respaldo, backup.tar, se encuentra en tu directorio personal (/home/labex). Por lo tanto, debes proporcionar la ruta completa al archivo comprimido cuando ejecutes el comando.

El comando para extraer el archivo es tar -xvf ~/backup.tar. Veamos las opciones:

  • -x (extract): Esta opción le indica a tar que extraiga los archivos de un archivo comprimido. Esta es la diferencia clave con el comando de creación.
  • -v (verbose): Al igual que antes, esto enumera cada archivo a medida que se extrae, mostrándote el progreso.
  • -f (file): Especifica el nombre del archivo que se va a procesar. Usas ~/backup.tar para hacer referencia al archivo de respaldo en tu directorio personal.

Ten en cuenta que no necesitas sudo para la extracción porque estás extrayendo en /tmp, donde los usuarios normales tienen permisos de escritura, y solo estás leyendo el archivo de respaldo (no modificando archivos del sistema).

Ahora, ejecuta el comando en tu terminal para extraer los archivos:

tar -xvf ~/backup.tar

Verás una lista de archivos y directorios creándose en tu directorio actual (/tmp). La salida será la lista de archivos contenidos dentro del paquete, que debería resultarte familiar de cuando lo creaste:

home/
home/labex/
home/labex/.bashrc
home/labex/.profile
home/labex/.zshrc
home/labex/project/
home/labex/.zsh_history
...

Esta salida indica que tar ha creado un directorio home dentro de /tmp y ha restaurado todos los archivos y directorios respaldados en su interior. En el paso final, verificarás esto.

Verificar que los archivos se hayan restaurado en /tmp

En este paso final, confirmarás que los archivos del archivo de copia de seguridad se extrajeron correctamente en el directorio /tmp. Esta es una parte crucial de cualquier proceso de restauración para garantizar la integridad de los datos.

Te encuentras actualmente en el directorio /tmp. Para ver el directorio home recién creado, utiliza el comando ls:

ls

Deberías ver un directorio llamado home entre cualquier otro archivo temporal que pueda estar presente:

home
...

Esto confirma que se creó el directorio de nivel superior del archivo comprimido. Para ser más minuciosos, miremos dentro de este nuevo directorio home para ver si contiene los datos de usuario esperados.

ls home

La salida debería mostrar el directorio personal del usuario labex, que era el contenido del directorio /home original del que hiciste la copia de seguridad:

labex

Esto confirma que el proceso de copia de seguridad y restauración fue exitoso. Has creado una copia de seguridad de /home usando privilegios de sudo, la has guardado en tu directorio personal (/home/labex) y luego la has restaurado con éxito en una ubicación temporal en /tmp/home.

Puedes verificar que los archivos restaurados coincidan con los originales comparando algunos de ellos. Por ejemplo, puedes comprobar si tu archivo .bashrc se restauró correctamente:

ls home/labex/.bashrc

La salida debería confirmar que el archivo existe:

home/labex/.bashrc

El proceso de copia de seguridad y restauración ha finalizado. Has demostrado con éxito cómo usar tar con privilegios de sudo para crear una copia de seguridad del sistema manteniendo tu contexto de usuario, que es el enfoque recomendado para las tareas de administración de sistemas.

Resumen

En esta práctica, aprendiste a realizar una tarea fundamental de administración de sistemas: crear y restaurar una copia de seguridad de un directorio utilizando el comando tar en Linux con privilegios de sudo. El proceso comenzó con la comprensión de tu entorno como usuario labex y el uso de sudo para ejecutar comandos con permisos elevados cuando fue necesario. Este enfoque es más seguro que cambiar completamente al usuario root, ya que proporciona permisos elevados temporales para tareas específicas mientras mantienes tu identidad de usuario.

Utilizaste la utilidad tar con sudo para crear un único archivo comprimido, backup.tar, que contenía todo el contenido del directorio /home, almacenándolo en tu directorio personal accesible. Esto demostró cómo manejar copias de seguridad de todo el sistema trabajando dentro de los límites del usuario y evitando posibles conflictos con las funciones del sistema.

Para la parte de restauración, aprendiste la mejor práctica de cambiar primero a una ubicación temporal segura como el directorio /tmp para evitar sobrescribir datos activos. Desde allí, utilizaste el comando tar para extraer el contenido del archivo backup.tar en tu directorio actual sin requerir privilegios elevados, ya que solo estabas leyendo el archivo de respaldo y escribiendo en una ubicación accesible para el usuario. El paso final consistió en verificar que los archivos y directorios de la copia de seguridad se restauraron correctamente en /tmp, confirmando la integridad de todo el ciclo de respaldo y restauración.