Copias de Seguridad en Linux Imprimir
SOFTWARE - Servidores
Escrito por Administrador   
Viernes, 28 de Mayo de 2004 11:24

pinguino

En el presente documento se va a explicar cómo realizar copias de seguridad automatizadas en una red interna de servidores con el sistema operativo Linux.

El sistema automatiza las copias de seguridad, creando un fichero “comprimido” y “paquetizado” con el comando tar, con el compresor compress para cada uno de los directorios a copiar. Para ello, se usará compartición de ficheros remotos del sistema NFS. La ejecución de las distintas funciones se realizará desde un servidor de control, ya que tiene permiso de rsh sobre todas las máquinas.

 

 

REQUISITOS DEL SISTEMA AUTOMATIZADO DE COPIAS DE SEGURIDAD

 

  1. Las máquinas de las que se vayan a hacer copias de seguridad han de dar permiso para hacer rsh desde el servidor de control.

  2. Deben de poder ejecutar el cliente de nfs, para ubicar la copia realizada en el servidor de copias, que es donde se va a realizar el volcado a un dispositivo de almacenamiento (cinta, cd , ...).

  3. Todas las máquinas involucradas, incluso los servidores de copias y de control han de pertenecer a la misma red.

  4. Deben estar instalados los paquetes del ncompress, y del rsh, en las máquinas que se van a copiar.

 

SERVIDOR DE CONTROL

 

  1. Debemos de tener un directorio donde ubicaremos el script que lanzará el cron, a partir de las 12 de la noche. Se harán a esta hora ya que los ficheros a copiar sufren menos modificaciones.

  2. En ese mismo directorio, tendremos otro fichero de texto que tendrá el siguiente formato:

servidorACopiar DiaIntegra DiaIncremental DirectorioEnServidorCopias

DirMontado

 

donde,

servidorACopiar: es el nombre de la máquina de la cual se realizará la copia.

DiaIntegra: día del mes en que se hará la copia íntegra.

DiaIncremental: día de la semana en que se hará la copia incremental. Va de 1..7, el '1' será Lunes, y el '6' Sabado. Si indicamos el valor de '7', es que no se hará copia incremental de ese servidor.

DirectorioEnServidorCopias: Es el directorio que está exportando el servidor de copias.

DirMontado: Es el nombre del directorio de montaje en el cliente nfs.

 

  1. Tendremos también por cada servidor a copiar, un fichero de texto que nos indique, qué cosas debemos de copiar, y podría tener el siguiente formato:

nombreDirectorioACopiar nombreFicheroAGenerar

 

donde,

nombreDirectorioACopiar: es el directorio que deseamos empaquetar y comprimir.

NombreFicheroAGenerar: es el nombre que damos al fichero empaquetado y comprimido (tendrá extensión .tar.Z). Por ejemplo:

/etc/ etc

/home/patron home-patron

 

NOTA: Las rutas han de ser absolutas, y no se pueden usar caracteres reservados del sistema operativo.

 

 

  1. El script debe de crear un fichero que indique la fecha de la última copia realizada, ésto lo utilizan las copias incrementales (opcción –newer del comando tar).

 

 

SERVIDOR DE COPIAS

 

  1. En el /etc/fstab debemos de tener una línea por cada dispositivo que deseemos usar para almacenar las copias hasta que sean volcadas definitivamente a dispositivo magnético. Ej:

/dev/hdaX /DirMontaje TipoSSFF defaults 1 2

  1. Debemos de exportar los directorios, para los clientes de nfs:

Editamos el fichero /etc/exports, e insertamos una línea por cada directorio a exportar;

Ej:  /DirMontaje/DirectorioAExportar  nombreMaquinaCliente.dominio(rw,no_root_squash)

  1. Levantar servidor de nfs.

MÁQUINA DE USUARIO

Es la que va a levantar el cliente de nfs, para que la copia se genere físicamente en la máquina que hace de Servidor de Copias. La orden mount deberá emitirse desde el script que se va a ejecutar en el Servidor de Control, y ha de ser algo similar a:

Ej: #función que monta en el cliente el directorio exportado por el servidor NFS

rsh -n $CLIENTE mount -o rw $SERVIDOR:$DIREXPORTADO $DIRMONTADO 2>> $log_error

 

 

SCRIPT DE AUTOMATIZACIÓN DEL PROCESO DE COPIA

 

Pasos que debe ejecutar dicho script­:

a) Leer:

servidorACopiar DiaIntegra DiaIncremental DirectorioEnServidorCopias DirMontado

 

Estos datos se toman del fichero de texto que se comentó anteriormente.

 

b) Leer del fichero de esa máquina concreta qué es lo que debemos copiar (por ej.: /etc), y el nombre que se va a dar al fichero.

c) Comprobar si esa máquina está planificada para ser copiada en la fecha actual.

d) Si se ha de copiar, existen dos opciones:

d.1-. Copia íntegra:

  • Se monta el directorio con el comando citado en el apartado anterior.

  • Se realiza la copia, con una orden similar a:

    -. Se van leyendo los directorios que han de copiarse, y para cada uno de ellos;

      rsh -n $CLIENTE tar $NEWER -cf - $DIRACOPIAR '|' compress -c '>' $DIRMONTADO/$CLIENTE-$FechaHoy$tipoCOPIA-$NOMBRE.tar.Z 2>> $log_error

donde,

 

  •  

      $CLIENTE es el nombre de la máquina de la cual haremos la copia, y que tiene lanzado el cliente de nfs.

      $NEWER debe valer “” si es copia íntegra, y “--newer fecha-ultima-copia” si es incremental.

      $DIRACOPIAR es la ruta absoluta del directorio a copiar.

      $DIRMONTADO es el directorio de montaje (usado en el cliente de nfs).

      $FechaHoy es la fecha actual.

      $tipoCOPIA añade un texto que nos indicará si la copia es íntegra o incremental.

      $NOMBRE es el nombre que le damos al directorio que estamos copiando, y se ha obtenido de leer el 2º campo del fichero de texto, donde se indica 'Directorio a copiar' 'nombreFicheroDirectorio' (hace referencia a éste último valor).

 

 

d.2-. Copia Incremental:

  • Es similar a la copia íntegra, excepto en dos aspectos fundamentales:

    $ NEWER=”--newer fecha-ultima-copia ”

    $tipoCOPIA=”Incremental”

  • Al finalizar la copia, se debe de actualizar la fecha de última copia, para que la siguiente vez que se realice la incremental, tome únicamente los datos que hayan sufrido modificaciones a partir de dicha fecha.

    e) Por último, ya sólo queda desmontar el directorio del cliente nfs ($DIRMONTADO).

 

NOTA: Se pueden ir guardando logs de todo el proceso, para en caso de fallo seguir el rastro, y poder solucionar el problema con mayor rapidez.

 

RECUPERACIÓN DE LOS DATOS

 

Se recomienda volcar las copias a dispositivos de almacenamiento secundario (cintas magnéticas, Cds, ...), y en caso de necesitarse, copiar dichos ficheros a una máquina de recuperación de datos. Una vez hecho ésto, se descomprimen y desempaquetan los mismos usando la orden:

 

(Para RedHat) # tar xvZf nombreFichero.tar.Z