Resumen de comando TAR para compresión y backups

La orden tar

La utilidad tar (Tape Archiver) es una herramienta de fácil manejo disponible en todas las versiones de Unix y la mayoría de Posix que permite volcar ficheros individuales o directorios completos en un único fichero; inicialmente fue diseñada para crear archivos de cinta (esto es, para transferir archivos de un disco a una cinta magnética y viceversa), aunque en la actualidad casi todas sus versiones pueden utilizarse para copiar a cualquier dispositivo o fichero, denominado `contenedor’.

Si deseas mas información y algo de historia del comando de la definición puedes mirar la página del proyecto GNU y Tar

Sintaxis y funciones comunes

La sintaxis para tar es:

tar archivo_a_crear

Las funciones más comúnmente utilizadas son:

-c: Crea un contenedor
-x: Extrae archivos de un contenedor
-t: Testea los archivos almacenados en un contenedor
-v: Modo verbose
-f: Especifica el nombre del contenedor
-Z: Comprime o descomprime mediante compress/uncompress (obsoleto)
-z: Comprime o descomprime mediante gzip
-j: Comprime o descomprime mediante bzip2
-p: Conserva los permisos de los ficheros

Ejemplos prácticos

Para estos ejemplos voy a generar “contenedores” del directorio, subidrectorios y archivos que se encuentran en /var/log y los voy a guardar en la carpeta /tmp. Recordemos que tar maneja el concepto de”contenedor” (el los crea, no los comprime, por lo que es necesario pasarle parámetros adicionales para que realice la compresión) por esto lo que primero explico es como crearlo y luego comprimirlos.

1. Crear un contenedor sin comprimir y luego verificar su contenido

$ tar -cvf /tmp/ejemplo1.tar /var/log

$ tar -tvf /tmp/ejemplo1.tar

2. Crear un contenedor comprimido con gzip y luego verificar su contenido

$ tar -czvf /tmp/ejemplo2.tar.gz /var/log

$ tar -tzvf /tmp/ejemplo2.tar.gz

3. Crear un contenedor comprimido con bzip2 y luego verificar su contenido

$ tar -cjvf /tmp/ejemplo3.tar.bz2 /var/log

$ tar -tjvf /tmp/ejemplo3.tar.bz2

4. Extraer los datos almacenados en el contenedor sin comprimir, luego del comprimido con gzip y por ultimo el que fue creado con bzip2.Lo descomprime en el directorio donde estamos ubicados.

$ tar -xvf ejemplo1.tar

$ tar -xzvf ejemplo2.tar.gz

$ tar -xjvf /tmp/ejemplo3.tar.bz2

5. Eliminar archivo /var/log/borrame.txt del “contenedor” simple (sin compresión). Para saber si el archivo existe en el archivo se puede antes utilizar:

$ tar -tvf ejemplo1.tar | grep borrame.txt

y luego para borrarlo

$ tar -v –delete var/log/borrame.txt -f ejemplo1.tar

Es de resaltar en este punto que la opción -f siempre especifica el nombre del archivo a crear.

También cabe señalar que no es posible realizar este proceso de borrado en archivos comprimidos como muestra el ejemplo a continuación:

$ tar -zv –delete var/log/messages.0 -f ejemplo2.tar.gz
tar: No se pueden actualizar archivos comprimidos
Intente`tar –help’ o `tar –usage’ para mayor información.

6. Generar un archivo comprimido utilizando una larga lista de archivos

Si quisiéramos ingresar varios archivos de diferentes sitios por lo general seria necesario especificar el nombre de cada archivo o el directorio y el archivo que quisiéramos agregar en el “contenedor comprimido”. Pero esto seria algo “fastidioso” si las rutas o archivos fueran muchos y largos. No seria mejor que tomara los datos de un archivo y comprimiera esos directorios?

El archivo puede tener cualquier nombre y los directorios o archivos deben estar separados con un espacio (deben tener la ruta completa preferiblemente) Quiero hacerle backup a estos archivos, por lo que lo coloco en un archivo que llamé listadito… contenido de archivo: (separado con espacio cada archivo o directorio)

/etc/passwd /var/log/dm* /home/mmejiav/docs/h_vida_mmejiav.pdf /var/log/messages /sbin
luego el comando sería:

$ tar -cjvf /tmp/ejemplar.tar.bz2 $(cat listadito)

Para finalizar se puede decir que existen infinidad de combinaciones que pueden solucionar las necesidades particulares del usuario. Por esto invito a buscar en google (la mayor fuente de información) o en la documentación (man)

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión /  Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión /  Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión /  Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión /  Cambiar )

Conectando a %s