Imprimir

El uso de un servidor de copias de seguridad centralizado podría ser una de las reglas de seguridad más importantes que se pueden implementar. En algún momento se pueden perder datos y es importante tener una copia fuera del equipo. Pero, no estamos hablando de un servidor de cintas, con el software de copia de seguridad propietario, en el que podría nos podría llevar horas obtener los datos de nuevo.

Vamos a diseñar la lógica de utilizar el software libre rsync para copia de seguridad en línea. Rsync es una herramienta de copia de seguridad increíble.

Rsync es una de las más poderosas herramientas de código abierto. Esto permite especificar una lista de archivos o una estructura de directorios y hacer una copia exacta a otra ubicación. ¿Cual es la diferencia entre rsync y copiar, por ejemplo, rsync sólo copiará los datos que son diferentes en los lugares de origen y destino.



Si tienes 100 gigas de datos que necesitas para copia de seguridad, pero sólo 4 gigas han cambiado desde la última copia, no hay necesidad de copiar los 100 gigas de nuevo. Sería una pérdida de tiempo y supone un uso de ancho de banda innecesario. Lo lógico es que no quieras repasar todos los archivos manualmente y averiguar lo que ha cambiado. Aquí es donde entra a trabajar rsync. Puedes configurar rsync para duplicar una lista de directorios y/o archivos y comparar esa lista con la ubicación de destino donde quieras tener la copia de seguridad. La eficiencia de rsync proviene del método utilizado para realizar la copia de seguridad.

Cuando se añade o elimina datos de un archivo no cambia todo el archivo, sólo una parte lo hace. Rsync reconoce esto y sólo copia los datos modificados. Si tuvieras un archivo de 100 megas y sólo 1 mega hubiese cambiado, entonces tendría que ser transferido sólo 1 mega.

 

Haciendo la estructura de archivos backup.

Los archivos  se pondrán en un directorio llamado "copias".

root@xendeb:/# mkdir copias


Bajo el directorio "copias" haremos los subdirectorios para cada una de las máquinas que queremos copiar, por ejemplo "pepe" y "manolo".

root@xendeb:/# cd copias
root@xendeb:/copias# mkdir pepe
root@xendeb:/copias# mkdir manolo



Por último , los scripts de copia de seguridad irán a la partición "copias". Los guiones son tan importantes como los datos de los usuarios , por lo que ponerlos en una partición allanada hace buen sentido . Hacer que el directorio de scripts de copia de seguridad en /copias/backup_config.

mkdir /copias/backup_config


Nuestra estructura de directorios se verá así :

root@xendeb:/# ls -la /copias
total 20
drwxr-xr-x 5 root root 4096 may 13 09:32 .
drwxr-xr-x 25 root root 4096 may 13 08:43 ..
drwxr-xr-x 2 root root 4096 may 13 09:32 backup_config
drwxr-xr-x 2 root root 4096 may 13 08:35 manolo
drwxr-xr-x 2 root root 4096 may 13 08:34 pepe

 

Creando el script

Ahora vamos a crear un script, dentro de la carpeta que nos permita recoger los datos de los diversos equipos.

cd /backup_config
nano copiar.sh

Y este es nuestro script:

 

#!/bin/sh
##Script de backups
#
##Equipo PEPE
rsync -avzr root@IPdepepe:/home/pepe/ /copias/pepe/
#
##Equipo MANOLO
rsync -avzr root@IPdemanolo:/home/manolo/ /copias/manolo/

Grabamos y salimos, ahora tenemos que darle al script permisos de ejecución:

chmod +x /copias/backup_config/copias.sh

Toca probarlo, para ello ejecutamos:

./copias/backup_config/copias.sh

Nos va a pedir la contraseña de usuario en los equipos remotos; esto es algo que queremos evitar, para poder programar luego nuestros backup. Esto se hace añadiendo en el equipo remoto nuestra firma. Puedes ver como hacerlo aquí

En este ejemplo utilizamos el usuario "root" para no liar mucho la cosa, desde luego no es lo más recomendable, deberíamos usar el propio usuario del equipo remoto o crear un usuario específico para estos menesteres.

 

Programando las copias

Bueno, pues si ya podemos conectar con los equipos remotos sin que nos pida contraseña, solo nos queda configurar la ejecución automática de nuestro script:

Ejecutamos:

crontab -e

Y añadimos esta línea:

30 15 * * * /copias/backup_config/copias.sh  > /dev/null 2>> /var/log/copias.log

 

Guardamos y salimos, con esto le estamos diciendo que ejecute nuestro script todos los días a las 15:30 y que nos guarde las incidencias en el archivo copias.log.

 

Listo !! Ya tenemos nuestro backup configurado. Existen muchas más opciones y posibilidades, pero como acercamiento sirve.