La utilidad tar (Tape Archiver) es una herramienta de fácil
manejo disponible en todas las versiones de Unix que permite volcar ficheros
individuales o directorios completos en un único fichero; inicialmente fué
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 dipositivo o
fichero, denominado `contenedor'. Su principal desventaja es que, bajo ciertas
condiciones,
si falla una porción del medio (por ejemplo, una cinta) se puede perder toda
la copia de seguridad; además, tar no es capaz de realizar por sí
mismo más que copias de seguridad completas, por lo que hace falta un poco
de programación shellscripts para realizar copias progresivas o
diferenciales.
En la tabla 7.4 se muestran las opciones de tar más
habituales; algunas de ellas no están disponibles en todas las
versiones de tar, por lo que es recomendable consultar la página
del manual de esta orden antes de utilizarla. Si la implementación de tar que existe en nuestro sistema no se ajusta a nuestras necesidades, siempre
podemos utilizar la versión de GNU (http://www.gnu.org/), quizás
la más completa hoy en día.
Tabla 7.4:
Opciones de la orden tar
Opción |
Acción realizada |
c |
Crea un contenedor |
x |
Extrae archivos de un contenedor |
t |
Testea los archivos almacenados en un contenedor |
r |
Añade archivos al final de un contenedor |
v |
Modo verbose |
f |
Especifica el nombre del contenedor |
Z |
Comprime o descomprime mediante compress/uncompress |
z |
Comprime o descomprime mediante gzip |
p |
Conserva los permisos de los ficheros |
|
En primer lugar debemos saber cómo crear contenedores con los archivos
deseados; por ejemplo, imaginemos que deseamos volcar todo el directorio
/export/home/ a la unidad de cinta /dev/rmt/0. Esto lo conseguimos
con la siguiente orden:
anita:~# tar cvf /dev/rmt/0 /export/home/
Como podemos ver, estamos especificando juntas las diferentes opciones
necesarias para hacer la copia de seguridad de los directorios de usuario; la
opción `v' no sería necesaria, pero es útil para ver un listado
de lo que estamos almacenando en la cinta. En muchas situaciones también
resulta útil comprimir la información guardada (tar no
comprime, sólo empaqueta); esto lo conseguiríamos con las opciones
`cvzf'.
Si en lugar de (o aparte de) un único directorio con todos sus ficheros y
subdirectorios quisiéramos especificar múltiples archivos (o directorios),
podemos indicárselos uno a uno a tar en la línea de comandos;
así mismo, podemos indicar un nombre de archivo contenedor en lugar de
un dispositivo. Por ejemplo, la siguiente orden creará el fichero /tmp/backup.tar, que contendrá /etc/passwd y /etc/hosts*:
anita:~# tar cvf /tmp/backup.tar /etc/passwd /etc/hosts*
tar: Removing leading `/' from absolute path names in the archive
etc/passwd
etc/hosts
etc/hosts.allow
etc/hosts.deny
etc/hosts.equiv
anita:~#
Una vez creado el contenedor podemos testear su contenido con la opción
`t' para comprobar la integridad del archivo, y también para ver qué
ficheros se encuentran en su interior:
anita:~# tar tvf /tmp/backup.tar
-rw-r--r-- root/other 965 2000-03-11 03:41 etc/passwd
-rw-r--r-- root/other 704 2000-03-14 00:56 etc/hosts
-rw-r--r-- root/other 449 2000-02-17 01:48 etc/hosts.allow
-rw-r--r-- root/other 305 1998-04-18 07:05 etc/hosts.deny
-rw-r--r-- root/other 313 1994-03-16 03:30 etc/hosts.equiv
-rw-r--r-- root/other 345 1999-10-13 03:31 etc/hosts.lpd
anita:~#
Si lo que queremos es recuperar ficheros guardados en un contenedor
utilizaremos las opciones `xvf' (o `xvzf' si hemos utilizado
compresión con gzip a la hora de crearlo). Podemos indicar el archivo
o archivos que queremos extraer; si no lo hacemos, se extraerán todos:
anita:~# tar xvf /tmp/backup.tar etc/passwd
etc/passwd
anita:~# tar xvf /tmp/backup.tar
etc/passwd
etc/hosts
etc/hosts.allow
etc/hosts.deny
etc/hosts.equiv
etc/hosts.lpd
anita:~#
La restauración se habrá realizado desde el directorio de trabajo, creando
en él un subdirectorio etc con los ficheros correspondientes en su
interior. Si queremos que los ficheros del contenedor sobreescriban a los que ya
existen en el sistema hemos de desempaquetarlo en el directorio adecuado, en
este caso el raíz.
© 2002 Antonio Villalón Huerta