Logotipo del grupo GSO

8. Ejecutando Amanda

Ya tenemos todo listo para que el sistema funcione. Vamos a ver qué hay que hacer para que Amanda entre en ejecución y nos resuelva el problema de la realización de las copias de seguridad en nuestro sistema.

8.1. Comprobación del Funcionamiento: "amcheck"

Una de las cosas buenas que tiene Amanda es que puedes saber si va a funcionar o no, antes de ejecutarlo. Puedes testear tu configuración con el comando amcheck. Ejecuta este comando como usuario amanda, y no como root:

Si en éste momento estás como root, usa:

# su amanda -c "amcheck Diaria"

Si estás como usuario amanda, usa:

# amcheck Diaria

Muchos de los errores reportados por amcheck están descritos en docs/FAQ, o en la página man de amcheck. El error más común reportado es "selfcheck request timed out", lo que significa que amcheck no ha podido hablar con el demonio amandad (mira el /etc/inetd.conf)en el cliente. Es importante recordar en este punto que las listas de correo funcionan de forma muy eficiente, ya que la gente responde en el mismo día.

Para un testeo inicial, establece la opción record a no en el dumptype global, pero acuérdate de ponerlo a yes cuando Amanda vaya a realizar su funcionamiento normal. Este parámetro controla si el programa de copia en el cliente actualiza su propia base de datos, tal como /etc/dumpdates.

Para empezar completamente desde cero, elimina los archivos o directorios nominados en los directorios info e index, el fichero tapelist, y todos los ficheros amdump.* en el directorio de configuración, así como todos los ficheros del tipo log.*. Estos ficheros contienen información histórica que Amanda necesita entre sus ejecuciones y también son necesarios para encontrar imágenes de copias para su restauración. Deberían estar protegidos cuando Amanda entre en funcionamiento en tu sistema. Las rutas y nombres posibles de todos estos ficheros vienen definidas en el fichero de configuración amanda.conf.

8.2. Ejecución de la Copia: "amdump"

El script amdump controla una ejecución normal de Amanda. Simplemente hay que tener en cuenta estos puntos:

Su ejecución es tan simple como esto: amdump, y a continuación el nombre del tipo de configuración. En nuestro caso, sería: amdump Diaria. Se ejecuta como usuario amanda, no como root. Lo puedes ejecutar manualmente, desde consola, o meterlo como tarea del cron del usuario amanda, para que las copias se hagan automáticamente.

Si cuando se va a ejecutar amdump, este detecta otra copia en ejecución, o una copia anterior abortada, amdump genera un error y se detiene. Usa amcleanup para limpiar el sistema de ejecuciones abortadas, y luego podrás ejecutar de nuevo amdump.

Cuando Amanda termina una ejecución, manda un reporte en forma de correo electrónico al destinatario o destinatarios establecidos en el fichero amanda.conf (recuerda el parámetro "mailto", en las primeras líneas del fichero de configuración). También renombra el fichero de registro de la ejecución a un nombre de fichero único, con el formato log.YYYYMMDD.N nombre.

Es recomendable, al menos durante los primeros días de funcionamiento del sistema, léerse los reportes que llegan al correo.

8.3. Recuperación de Datos: "amrecover" y "amrestore"

Es el momento de hablar sobre cómo podemos restaurar la información desde una copia de seguridad a su origen. En pocas palabras, de eso se encargan los comandos amrecover y amrestore, que tendremos que ejecutar como root. A continuación se explica el uso de ambos, así como las particularidades, ventajas y desventajas de cada uno de ellos.

8.3.1. Configuración y uso de "amrecover"

amrecover es el comando que vamos a usar para restaurar archivos con Amanda. Antes de que amrecover pueda funcionar, Amanda debe ejecutarse con el parámetro dumptype index establecido a yes, y los servicios amindexd y amidxtaped deben estar instalados y activados en el archivo /etc/inetd.conf del servidor de cintas (esto lo hace por defecto la instalación). Además, el cliente debe figurar en el fichero .amandahosts (o .rhosts) del servidor de cintas. Es imprescindible ejecutar el comando amrecover como root. amrecover no debería hacerse setuid-root, ya que podría entonces abrir catálogos del sistema entero para todo el mundo.

Veremos a continuación un ejemplo prático que ilustra la situación. El usuario X ha pedido que se le restauren dos archivos, ambos con el mismo nombre "molecule.dat", en los subdirectorios llamados work/sample-21 y work/sample-22 y dice que quiere las versiones que se modificaron por última vez el 13 de enero. Nos hacemos root en el cliente donde vamos a restaurar la información (si es un cliente unix/linux. Si no, desde el server), vamos al área y ejecutamos amrecover:

$ su 
Password: 
# cd ~jj 
# amrecover Diaria
AMRECOVER Version 2.4.1p1. Contacting server on amanda.cc.purdue.edu ... 
220 amanda Amanda index server (2.4.1p1) ready. 
200 Access OK 
Setting restore date to today (1999-01-18) 
200 Working date set to 1999-01-18. 
200 Config set to Diaria.
200 Dump host set to pete.cc.purdue.edu. 
$CWD '/home/pete/u66/jj' is on disk '/home/pete/u66' mounted at '/home/pete/u66'. 
200 Disk set to /home/pete/u66. 
amrecover>

En este punto, un interfaz de línea de comandos nos permite navegar por la imagen de los catálogos. Navega mediante el comando cd, mira qué está disponible con ls, cambia las fechas con setdate, añade archivos y directorios a la lista de extracción con add. El comando extract inicia la extracción de lo que hayas seleccionado. Y si tienes dudas, o no te acuerdas de los comandos, siempre está el comando help:

amrecover> setdate ---14 
200 Working date set to 1999-01-14. 
amrecover> cd work/sample-21 
/home/pete/u66/jj/work/sample-21 
amrecover> add molecule.dat 
Added /jj/work/sample-21/molecule.dat 
amrecover> cd ../sample-22 
/home/pete/u66/jj/work/sample-22 
amrecover> add molecule.dat 
Added /jj/work/sample-22/molecule.dat 
amrecover> extract 
Extracting files using tape drive /dev/rmt/0mn on host amanda.cc.purdue.edu. 
The following tapes are needed: Diaria-034 
Restoring files into directory /home/pete/u66 
Continue? [Y/n]: y 
Load tape Diaria-034 now 
Continue? [Y/n]: y 
Warning: ./jj: File exists 
Warning: ./work: File exists 
Warning: ./work/sample-21: File exists 
Warning: ./work/sample-22: File exists 
set owner/mode for '.'? [yn] n 
amrecover> quit

amrecover localiza los directorios y archivos que contienen las imágenes, opcionalmente la descomprime (si has usado compresión), llega al cliente a través de la red y se entuba en el apropiado programa de restauración con los argumentos necesarios para extraer los archivos solicitados. amrecover no sabe cómo ejecuta cada cliente el programa de restauración. Mira la página man de amrecover para información actualizada. amrecover no debería usarse para una restauración total del sistema de archivos con herramientas de resturación comerciales, pero funciona de maravilla con el GNU tar. Las herramientas comerciales deberían ejecutarse con el flag r para una restauración completa, y con el flag x para extraer archivos individuales. Una restauración completa con herramientas comerciales debería realizarse cen el comando amrestore.

8.3.2. Uso de "amrestore"

Respecto a este comando, comentar que su función es recuperar imágenes completas desde el disco o cualquier otro soporte utilizado, aunque está más orientado a dar un soporte para la realización de copias de seguridad en cintas, ya que proporciona facilidades como la búsqueda de cintas mediante indexación de sus contenidos, y otras.

Puede encontrarse más información acerca del uso de dispositivos de cinta y del comando amrestore en las referencias listadas en la sección "Más Información" de este documento.