educación, informática y demás

GNU/Linux bash, Sistemas Operativos en Red

Herramienta tar

Con la herramienta tar podemos crear ficheros que empaquetan ficheros y directorios. Además de empaquetar varios ficheros y directorios, pudiendo almacenar la jerarquía de directorios original dentro de un solo fichero, podemos comprimir el contenido de forma que el fichero resultante ocupará menos espacio que los ficheros que contiene.

En resumen, con tar podemos empaquetar muchos ficheros en uno solo. Además, podemos comprimirlos para que ocupen menos. También, podemos almacenar un directorio y todo su contenido de forma recursiva.

Es una herramienta que nos viene muy bien para realizar copias de seguridad completas así como incrementales, siempre que no usemos compresión.

Ayuda de tar

Para obtener ayuda de tar, podemos acceder a la ayuda en línea de comandos pasándole como parámetro la opción –help.

Para información más detallada podemos consultar su página de manual.

Empaquetar

Para crear un fichero que empaqueta varios ficheros utilizamos la opción -c o create.

Para crear un fichero que empaquete varios ficheros, utilizamos la opción -c indicando que queremos crear un paquete, después con la opción -f indicamos dónde queremos que se empaquete, en qué fichero. Por último, indicamos los ficheros que queremos empaquetar.

Ejercicio 1

Empaqueta todos los ficheros txt de tu directorio actual en un fichero llamado textos.tar

¿Como podemos ver el contenido? opción -t, listar.

Ejercicio 2

Crea un directorio llamado documentos y copia todos los ficheros con extensión txt y sh al directorio documentos. Empaqueta el contenido del directorio documentos en un fichero llamado documentos.tar

Empaquetamos el directorio documentos en un fichero llamado documentos.tar.

¿Cuanto ocupa el fichero y el directorio?

Veamos cuanto ocupa el fichero documentos.tar

Si comprimimos el contenido del fichero, utilizando la opción -z, el fichero estará empaquetando y comprimiendo el contenido del directorio.

Ahora vamos a descomprimir con la opción -x, que sirve para extraer, en lugar de -c, que sirve para crear. La sintaxis es similar.

El tema está en que tar desempaquetará el contenido del fichero en el directorio actual. Si queremos que desempaquete en otro directorio podemos utilizar la opción -C o bien cambiarnos de directorio.

Funciona, pero puede ser un poco rollo tenernos que cambiar de directorio.

Vamos a usar la opción -C seguida de la ruta del directorio, que debe existir, dónde se desempaquetará el contenido del fichero tar.

He descomprimido en el directorio documentos por error O:) después he descomprimido en el directorio informacion.

Si miramos dentro de informacion/documentos tendremos los ficheros.

Si el fichero está comprimido, lo único que tenemos que incluir es una z para indicar a tar que tiene que descomprimir.

Script de backup

Crea un script llamado backup.sh que reciba por parámetro obligatorio el nombre de un usuario del sistema. Debemos realizar el control de errores habitual para que el script funcione correctamente:

  • Si no eres root, error y salimos
  • Si no se pasa parámetro, error y salimos
  • Si el usuario no existe, error y salimos.

Buscamos la ruta del directorio personal del usuario en el fichero de cuentas de usuarios del sistema. Creamos, si no existe, el directorio de backups del usuario. El directorio de backups de un usuario tendrá el nombre del usuario y se almacenará dentro del directorio /seguridad.

Ahora tenemos que crear un fichero tar.gz con el contenido del directorio personal del usuario seleccionado. El nombre del fichero estará compuesto por: «NombreDelUsuario-YYMMDD-HHmm.tar.gz» y se almacenará en el directorio de backups del usuario.

Por ejemplo, para marinapg el directorio de backups será: /seguridad/marinapg. Si hicieramos la copia de seguridad el 15 de mayo a las 15:30 horas, el fichero se llamaría: marinapg-240515-1530.tar.gz.

Crea una función llamada backupUser que reciba por parámetro el nombre del usuario para el que:

  1. Se creará si no existe su directorio de backup.
  2. Se creará la copia de seguridad del contenido de su directorio personal en el fichero tar.gz dentro del directorio de backup del usuario.

Pista

Dejar una respuesta