HTMLWeb
manuales - recursos - gráficos - programación...

Home - Linux -  Redes en Linux -  1 -  2 - 3  - 4 - 5  - 6 - 7  - 8 - 9  - 10 - 11  - 12 - 13  - 14

Redes en Linux (VII)
por Narciso Cerro, de Piensa en Linux.


Copias de seguridad, TAR y GZIP.-

El empaquetador universal: TAR.-

El comando tar es utilizado normalmente para archivar ficheros. El concepto de archivar ficheros  o «empaquetar» no es otro que guardar en un único fichero una lista de varios ficheros, o el contenido de todo un directorio (o varios directorios).

El formato del comando tar es:

tar <opciones> <fichero1><fichero2>...<ficheroN>

Donde <opciones> es la lista de opciones y <fichero1> hasta <ficheroN> es la lista de ficheros a añadir o extraer del archivo. Se puede usar para directorios completos. Por ejemplo, el comando:

[Crispin@Globus /Crispin]$ tar cvf archivo.tar /etc

Empaquetará todos los ficheros de /etc en el fichero tar archivo.tar c le dice a tar que cree un nuevo fichero de archivo. La opción v fuerza a tar en el modo verbose, (osea mostrando en pantalla el progreso de la tarea que realiza, en este caso los nombres de los ficheros según se archivan).

La opción f le dice a tar que el siguiente argumento archivo.tar es el nombre del archivo a crear. El resto de los argumentos de tar son los nombres de ficheros y directorios a añadir al archivo.

[Crispin@Globus /Crispin]$ tar xvf archivo.tar

Extraerá el fichero archivo.tar en el directorio actual.

Una de las ventajas que nos ofrece tar es que respeta la estructura de directorio existente en el momento de empaquetar, de forma que al desempaquetar se reproducirá como estaba originalmente.

Por supuesto esto nos obliga a tener cierto cuidado a la hora de desempaquetar:

Si se uso el comando:

[Crispin@Globus /Crispin]$ tar cvf archivo.tar /etc/fstab /etc/inittab /etc/passwd

El nombre de directorio /etc se añadió al principio de cada nombre de fichero. Para poder extraer los ficheros en la localización inicial, se necesitara utilizar los siguientes comandos:

[Crispin@Globus /Crispin]$ cd /
[Crispin@Globus /Crispin]$ tar xvf archivo.tar

Puesto que los ficheros se extraen con el nombre de camino almacenado en el fichero de archivo. Sin embargo, si se archivaron los ficheros con los comandos:

[Crispin@Globus /Crispin]$ cd /etc
[Crispin@Globus /Crispin]$ tar cvf fstab inittab passwd

Los nombres de directorio no se salvaron en el fichero de archivo. Por esto se necesitara hacer cd /etc antes de extraer los ficheros. Como se puede ver, el como haya sido creado un fichero tar marca una gran diferencia en como se extrae.

[Crispin@Globus /Crispin]$ tar tvf archivo.tar

La t le indica a tar que deseas un «test» del contenido del fichero antes de desempaquetarlo.
De esta forma se puede ver que directorio se utilizo como origen de los nombres de los ficheros, y se puede extraer el archivo desde la localización que necesitemos.

Comprimiendo: GZIP.-

Ya podemos empaquetar y hacer copias de seguridad con tar. Desgraciadamente uno de los problemas de prácticamente todos los sistemas informáticos es el espacio de almacenamiento.

No importa lo grandes que sean nuestros discos duros: siempre acaban llenándose. Una de las soluciones es la compresión por software de los datos almacenados. Y tar, por defecto, no comprime.

La herramienta clásica para comprimir es compress, pero por motivos de eficiencia ha sido desplazada en los últimos tiempos por gzip. Ademas gzip entiende perfectamente el formato de compress.

El programa gzip reduce el tamaño de los ficheros dados mediante el algoritmo de compresión de Lempel-Ziv (LZ77).
Normalmente, el fichero a comprimir se reemplaza por otro con la extensión.gz, manteniéndose los mismos permisos, propietarios y tiempos de modificación. Si no se da ningún fichero, o si un nombre de fichero es «-», se lee de la entrada estándar, que se comprime y se manda el resultado a la salida estándar.

La cantidad de compresión obtenida depende del tamaño de la entrada y de la distribución de subcadenas de caracteres comunes. Típicamente, texto o código fuente se reduce en un porcentaje del 60 al 70%. Un fichero ya comprimido, como la mayoría de archivos gráficos (gif, jpg), difícilmente reducirán su tamaño.

Podemos decirle a gzip el nivel de compresión que esperamos que use, en una escala de 1 a 9, siendo el 9 la máxima compresión que puede aplicar el programa. Tenga en cuenta que más compresión también significa mayor tiempo de procesamiento.

[Crispin@Globus /Crispin]$ gzip -9 archivo.tar

Comprimirá archivo.tar y le cambiará el nombre: archivo.tar.gz, que es la versión comprimida del fichero. La opción -9 le dice a gzip que utilice el mayor factor de compresión. Para descomprimir usaremos:

[Crispin@Globus /Crispin]$ gzip -d archivo.tar.gz

En esta ocasión archivo.tar.gz será reemplazado por archivo.tar.

El comando gunzip puede ser utilizado también para descomprimir un fichero comprimido con gzip. Es equivalentemente a gzip -d. Los ficheros comprimidos con compress terminan en la extensión.Z. Por ejemplo, archivo.tar.Z es la versión comprimida con compress de archivo.tar, mientras que archivo.tar.gz es la versión comprimida con gzip. La ventaja es que gunzip sabe también como tratar los ficheros comprimidos con compress.

Manejando el conjunto formado por tar y gzip podremos instalar el software que venga empaquetado de esta manera y ademas realizar de forma sencilla nuestras copias de seguridad.

Por ejemplo, para archivar un grupo de ficheros y comprimir el resultado, se pueden utilizar los comandos:

[Crispin@Globus /Crispin]$ tar cvf archivo.tar /etc
[Crispin@Globus /Crispin]$ gzip -9 archivo.tar

El resultado será archivo.tar.gz. Para desempaquetar este fichero, se usan los comandos contrarios:

[Crispin@Globus /Crispin]$ gunzip archivo.tar.gz
[Crispin@Globus /Crispin]$ tar xvf archivo.tar

Recuerde asegurarse siempre de que esta en el directorio correcto antes de desempaquetar un fichero tar.

El comando tar también incluye la opción z para comprimir/descomprimir automáticamente los ficheros al vuelo, utilizando el algoritmo de compresión de gzip. En este caso, el comando:

[Crispin@Globus /Crispin]$ tar cvfz archivo.tar.gz /etc

Es equivalente a:

[Crispin@Globus /Crispin]$ tar cvf archivo.tar /etc
[Crispin@Globus /Crispin]$ gzip archivo.tar

Igual que el comando:

[Crispin@Globus /Crispin]$ tar xvfz archivo.tar.Z

Se puede utilizar en vez de:

[Crispin@Globus /Crispin]$ uncompress archivo.tar.Z
[Crispin@Globus /Crispin]$ tar xvf archivo.tar

TAR, GZIP y unos disquetes.-

tar es perfectamente utilizable para la realización de copias de seguridad y una opción potente de tar es la posibilidad de trabajar con múltiple volúmenes. Lo que quiere decir que si optamos por guardar los datos en simples disquetes, en el momento que el primer disco está lleno, tar se para y pide el siguiente «volumen» (disquete).

El comando:

[Crispin@Globus /Crispin]$ tar cvfzM /dev/fd0 /etc

Hará una copia de seguridad de /etc utilizando el disquete /dev/fd0. La opción M de tar es la que permite que la copia de seguridad sea copia multi-volumen.

Para recuperar el contenido del disquete usaremos el comando:

[Crispin@Globus /Crispin]$ tar xvfzM /dev/fd0

Este método puede ser utilizado también si se tiene una unidad de cinta (/dev/rmt0) conectada al sistema, o una unidad zip que es tratada como un disco duro mas.

 

anterior
siguiente

Home - Linux -  Redes en Linux -  1 -  2 - 3  - 4 - 5  - 6 - 7  - 8 - 9  - 10 - 11  - 12 - 13  - 14