Los tres principales programas para respaldos son dump(8), tar(1) y cpio(1).
Los programas UNIX® que se han usado durante muchos
años para hacer copias de seguridad son
dump
y restore
.
Operan en las unidades como una colección de bloques de
disco, bajo la abstracción de ficheros, los enlaces y
directorios creados por el sistema de ficheros.
dump
respalda un sistema de ficheros completo
en un dispositivo. No es capaz de respaldar solamente parte
de un sistema de ficheros o un árbol de directorios
que se extienda por más de un sistema de ficheros.
dump
no escribe ficheros y directorios a
cinta, escribe los bloques de datos “crudos” (raw)
que conforman los ficheros y directorios.
Si utiliza dump
en su directorio
raíz, no respaldará
/home
, /usr
ni
muchos otros directorios, ya que suelen ser puntos de montaje
de otros sistemas de ficheros o enlaces simbólicos hacia
dichos sistemas de ficheros.
dump
tiene peculiaridades que se mantienen
desde sus primeros días en la Version 6 de AT&T UNIX
(alrededor de 1975). Los parámetros por defecto
son los adecuados para cintas de 9 pistas (6250 bpi), pero no para
los medios de alta densidad disponibles hoy en día
(hasta 62,182 ftpi). Estos valores por defecto deben
obviarse en la línea de comandos para aprovechar la
capacidad de las unidades de cinta actuales.
También es posible respaldar datos a través de
la red a una unidad de cinta conectada a otra computadora con
rdump
y rrestore
. Ambos
programas dependen de rcmd(3) y ruserok(3) para
acceder a la unidad de cinta remota. Por consiguiente, el usuario
que realiza el respaldo debe estar listado en el fichero
.rhosts
de la computadora remota. Los
argumentos para rdump
y rrestore
deben ser adecuados para usarse en la computadora remota.
Cuando realice un rdump
desde FreeBSD
a una unidad de cinta Exabyte conectada a una Sun llamada
komodo
, use:
#
/sbin/rdump 0dsbfu 54000 13000 126 komodo:/dev/nsa8 /dev/da0a 2>&1
Advertencia: existen implicaciones de seguridad al
permitir autentificación mediante
.rhosts
. Le recomendamos que
evalúe la situación cuidadosamente.
También es posible usar dump
y
restore
de una forma más segura
a través de ssh
.
dump
a través de
ssh#
/sbin/dump -0uan -f - /usr | gzip -2 | ssh -c blowfish \
usuario@maquinaobjetivo.ejemplo.com dd of=/misficherosgrandes/dump-usr-l0.gz
Uso del método integrado de dump
,
configurando la variable de ambiente RSH
:
dump
a través de
ssh con RSH
configurada#
RSH=/usr/bin/ssh /sbin/dump -0uan -f usuario@maquinaobjetivo.ejemplo.com:/dev/sa0 /usr
tar(1) también es de la época de
la Version 6 de AT&T UNIX (alrededor de 1975).
tar
trabaja en cooperación con el
sistema de ficheros; escribe ficheros y directorios a
cinta. tar
no soporta el rango completo
de opciones que ofrece cpio(1), pero no requiere el
inusual comando de pipeline que utiliza
cpio
.
En FreeBSD 5.3 y posteriores, tiene a su disposición
GNU tar
y el comando por defecto bsdtar
.
La versión GNU puede ser invocada mediante
gtar
. Soporta dispositivos remotos mediante
la misma sintaxis que rdump
. Para hacer un
tar
a una unidad de cinta conectada a una
Sun llamada komodo
, use:
#
/usr/bin/gtar cf komodo:/dev/nsa8 . 2>&1
Puede hacer lo mismo con o con
bsdtar
usando un “pipe” y
rsh
para mandar los datos a una unidad
de cinta remota.
#
tar cf - . | rsh nombredemaquina
dd of=dispositivo-de-cinta
obs=20b
Si le preocupa la seguridad del proceso de hacer un
respaldo a través de una red debe usar
ssh
en lugar de rsh
.
cpio(1) es el programa de intercambio de archivos de
cinta para medios magnéticos. cpio
tiene opciones (entre muchas otras) para realizar intercambio de
bytes, escribir un número diferente de formatos de
archivo y hacer “pipe” de datos hacia otros programas.
Esta última opción hace de cpio
una elección excelente para medios de instalación.
cpio
no sabe cómo recorrer el árbol
de directorios, así que debe facilitarle una lista de
directorios a través de
stdin
.
cpio
no permite respaldos a través
de la red. Puede usar un pipe y rsh
para mandar los datos a una unidad de cinta remota.
#
for f in lista_directorios; do
find $f << backup.list
done
#
cpio -v -o --format=newc < backup.list | ssh usuario
@máquina
"cat > dispositivo_de_respaldo
"
Donde lista_directorios
es la lista de
directorios que desea respaldar,
usuario
@máquina
es la combinación usuario/nombre de equipo que realizará
el respaldo y dispositivo_de_respaldo
es donde el respaldo se escribirá efectivamente (por ejemplo
/dev/nsa0
).
pax(1) es la respuesta IEEE/POSIX® a
tar
y cpio
.
A través de los años las diversas versiones
de tar
y cpio
se han
vuelto ligeramente incompatibles, así que en lugar
de pelear por hacerlo completamente estándar,
POSIX® creó una nueva utilidad de archivado.
pax
trata de leer y escribir muchos de
los diversos formatos de cpio
y
tar
, además de nuevos formatos
propios. Su conjunto de comandos se parece más a
cpio
que a
tar
.
Amanda (Advanced Maryland Network Disk Archiver) es un sistema de respaldos cliente/servidor, en lugar de un solo programa. Un servidor Amanda respaldará a una sola unidad de cinta cualquier cantidad de computadoras que tengan clientes Amanda y una conexión de red al servidor Amanda. Un problema común en sitios con gran cantidad de discos grandes es que la cantidad de tiempo requerida para respaldar los datos directamente a cinta excede la cantidad de tiempo disponible para la tarea. Amanda resuelve este problema. Amanda puede usar un “disco intermedio” para respaldar varios sistemas de ficheros al mismo tiempo. Amanda crea “conjuntos de archivo”, esto es, un grupo de cintas usadas durante un periodo de tiempo para crear respaldos completos de todos los sistemas de ficheros listados en el fichero de configuración de Amanda. El “conjunto de archivo” también contiene respaldos incrementales nocturnos (o diferenciales) de todos los sistemas de ficheros. Para restaurar un sistema de ficheros dañado hace falta el respaldo completo más reciente y los respaldos incrementales.
El fichero de configuración ofrece un control exhaustivo de los respaldos y del tráfico de red que Amanda genera. Amanda usará cualquiera de los programas de respaldo mencionados arriba para escribir los datos a cinta. Puede instalar Amanda como paquete y como port. No forma parte del sistema base.
“No hacer nada” no es un programa, pero es la estrategia de respaldo más extendida. No tiene coste. No hay un calendario de respaldos a seguir. Simplemente hay que decir que no. Si algo le sucediera a sus datos sonría y acostúmbrese a su nueva situación.
Si su tiempo y sus datos valen poco o nada, entonces “no hacer nada” es el programa de respaldo más adecuado para usted. Pero cuidado, UNIX® es una herramienta muy poderosa y puede suceder que dentro de seis meses tenga un montón de ficheros que sean valiosos para usted.
“No hacer nada” es el método correcto de
respaldo para /usr/obj
y otros árboles
de directorios que pueden ser fácilmente recreados por su
computadora. Un ejemplo son los archivos que forman la
versión HTML o PostScript® de este manual.
Estos documentos han sido generados desde ficheros SGML.
Crear respaldos de los archivos HTML o PostScript® no es
necesario dado que los ficheros SGML se respaldan regularmente.
dump(8).
Y no hay más que hablar.
Elizabeth D. Zwicky realizó pruebas de estrés a
a todos los programas de copia de seguridad aquí
expuestos. La elección clarísima para preservar
todos sus datos y todas las peculiaridades de sus sistemas de
ficheros UNIX® es dump
.
Elizabeth creó sistemas de ficheros conteniendo una gran
variedad de condiciones inusuales (y algunos no tan inusuales)
y probó cada programa haciendo un respaldo y restaurando
esos sistemas de ficheros. Esas peculiaridades incluían:
ficheros con y un bloque nulo, ficheros con caracteres
extraños en sus nombres, ficheros que no se podían
leer ni escribir, dispositivos, ficheros que cambiaban de
tamaño durante el respaldo, ficheros que eran creados/borrados
durante el respaldo y cosas así. Elizabeth presentó los
resultados en LISA V en octubre de 1991.
Consulte torture-testing
Backup and Archive Programs.
Solamente existen cuatro pasos que debe realizar en preparación de cualquier desastre que pudiera ocurrir.
Primero, imprima la etiqueta de disco de cada uno
de sus discos (disklabel da0 | lpr
),
su tabla de sistemas de ficheros
(/etc/fstab
) y todos los mensajes de
arranque, dos copias de cada uno.
Segundo, asegúrese que los disquetes de rescate
(boot.flp
y fixit.flp
)
tienen todos sus dispositivos. La manera más fácil
de revisarlo es reiniciar su máquina con el disquete
en la unidad y revisar los mensajes de arranque. Si todos sus
dispositivos aparecen en la lista y funcionan, pase al tercer
paso.
Si ha habido algún problema tiene que crear dos
disquetes de arranque personalizados, que deben tener un
kernel que pueda montar todos sus discos y acceder a su
unidad de cinta. Estos discos deben contener:
fdisk
, disklabel
,
newfs
, mount
y
cualquier programa de respaldo que utilice. Estos
programas deben estar enlazados estáticamente. Si
usa dump
, el disquete debe
contener restore
.
Tercero, use cintas de respaldo regularmente. Cualquier cambio que haga después de su último respaldo puede perderse irremediablemente. Proteja contra escritura las cintas de respaldo.
Cuarto, pruebe los disquetes (ya sea boot.flp
y fixit.flp
o los dos discos personalizados
que creó en el segundo paso) y las cintas de respaldo.
Documente el procedimiento. Almacene estas notas con los
discos de arranque, las impresiones y las cintas de respaldo.
Estará tan perturbado cuando restaure su sistema que las
notas pueden pueden evitar que destruya sus cintas de respaldo.
(?Como? en lugar de tar xvf /dev/sa0
,
puede teclear accidentalmente tar cvf /dev/sa0
y sobreescribir su cinta).
Como medida adicional de seguridad haga discos de inicio y dos cintas de respaldo cada vez. Almacene una de cada en una ubicación remota. Una ubicación remota NO es el sótano del mismo edificio. Muchas firmas alojadas en el World Trade Center aprendieron esta leccón de la manera más difícil. Esa ubicación remota debe estar separada físicamente de sus computadoras y unidades de disco por una distancia significativa.
La pregunta clave es: ?sobrevivió su hardware? Ha estado haciendo respaldos regularmente, así que no hay necesidad de preocuparse por el software.
Si el hardware ha sufrido daños los componentes deben reemplazarse antes de intentar de usar su sistema.
Si su hardware está bien revise sus discos de arranque.
Si usa disquetes de arranque personalizados arranque en modo
monousuario (teclée -s
en el
en el “prompt” de arranque boot:
).
Sáltese el siguiente párrafo.
Si utiliza usando los discos boot.flp
y fixit.flp
, siga leyendo. Inserte el disco
boot.flp
en la primera unidad de disquete
y arranque la máquina. El menú de instalación
original se desplegará en pantalla. Seleccione la
opción Fixit--Repair mode with CDROM or
floppy.
. Inserte el disco fixit.flp
cuando se le pida. Tanto restore
como los
demás programas que necesitará están en
/mnt2/rescue
(/mnt2/stand
para versiones
de FreeBSD anteriores a 5.2).
Recupere cada sistema de ficheros por separado.
Trate de montar (por ejemplo
mount /dev/da0a /mnt
) la partición
raíz de su primer disco. Si la etiqueta del disco
ha sufrido daños use disklabel
para reparticionar y etiquetar el disco de forma que coincida con
la etiqueta que imprimió y guardó previamente. Use
newfs
para crear de nuevo sus sistemas de
ficheros. Monte de nuevo la partición raíz del
disquete en modo lectura/escritura
(mount -u -o rw /mnt
). Ejecute su programa de
respaldo y utilice las cintas de respaldo para restaurar sus datos
en este sistema de ficheros
(restore vrf /dev/sa0
).
Desmonte el sistema de ficheros (umount /mnt
).
Repita el proceso con cada sistema de ficheros que sufrió
daños.
Una vez que su sistema esté en marcha respalde sus datos en cintas nuevas. Cualquiera que haya sido la causa de la caída o pérdida de datos puede suceder de nuevo. Una hora más que gaste ahora puede ahorrarle mucho sufrimiento más adelante.
Puede descargar éste y muchos otros documentos desde ftp://ftp.FreeBSD.org/pub/FreeBSD/doc/
Si tiene dudas sobre FreeBSD consulte la
documentación antes de escribir a la lista
<questions@FreeBSD.org>.
Envíe sus preguntas sobre la documentación a
<doc@FreeBSD.org>.