COPIAS+DE+SEGURIDAD

USO DE rsync PARA HACER COPIAS DE SEGURIDAD.
RSYNC es una utilidad libre (GPL) que se caracteriza por su capacidad de sincronizar árboles de ficheros a través de la red aunque también funciona en una sola máquina. Si estamos utilizando un sistema GN/Linux la tendremos ya instalada en el ordenador.

En nuestro caso vamos a poner en marcha un sistema de copias de seguridad por red que se sincronice diariamente de forma automática. También generaremos un script para hacer una copia manual en un dispositivo extraible mensualmente.

Para ello vamos a instalar un equipo con Debian o Ubuntu en la que vamos a montar un directorio donde recogeremos los ficheros de las copias de seguridad diarias.

El planteamiento que hacemos a continuación supone que tenemos instalados rsync, openssh y cron. También suponemos que todas las configuraciones las realizaremos sobre la máquina en la que se copiarán los ficheros a sincronizar.

A modo de resumen lo que pretendemos es copiar los ficheros que están en **///remote/dir///** del //**remotehost**// al directorio //**/this/dir/**// del //**thishost**// de manera automática.

El comando básico que habría que utilizar en la máquina local sería el siguiente: code $ rsync -avz -e ssh remoteuser@remotehost:/remote/dir /this/dir/ code Al ejecutar este comando se nos pedirá la clave de //remoteuser// en //remotehost//.

Deberemos asegurarnos de que //remoteuser// tiene permisos de lectura en ///remote/dir// y que el usuario que ha inicado la sesión local tiene permisos de escritura en ///this/dir///.

Las opciones utilizadas realizan lo siguiente:
 * a: la transferencia se realizará en modo archivo lo que asegura que los enlaces simbólicos, los atributos, permisos, etc. se mantendrán en la transferencia.
 * v: modo "parlanchín".
 * z: comprime los datos durante la transferencia.
 * e: nos indica que para conectarse a la máquina remota utilizaremos el protocolo ssh.

Por otra parte hay que distinguir muy bien el //**uso de la barra (/) al final del directorio origen**// ya que es distinto el resultado si la ponemos o si no la ponemos. Supongamos que tenemos dos directorios a y b con el fichero prueba dentro del directorio a, entonces el comando: code rsync -a a b code produce b/a/prueba, mientras que el comando: code rsync -a a/ b code produce b/prueba.

AUTOMATIZACIÓN DEL PROCEDIMIENTO.
Para automatizar el procesos de copias de seguridad deberemos configurar por lo menos dos cosas:
 * Hacer que el sistema no nos pida contraseñas. Para lo que utilizaremos un sistema de clave pública-clave privada sin contraseñas.
 * Programar las tareas para que se ejecuten automáticamente mediante un cron.

REFERENCIAS.

 * [|Ejemplo de uso de rsync y ssh para copias de seguridad]. (en)
 * [|Forma de automatizar backups con rsync]. (en)