netRsync es una aplicación para sistemas de tipo Unix que ofrece transmisión eficiente de datos incrementales comprimidos y cifrados. Mediante una técnica de delta encoding, permite sincronizar archivos y directorios entre dos máquinas de una red o entre dos ubicaciones en una misma máquina, minimizando el volumen de datos transferidos.

Fuente Wikipedia

Con este manual pondremos en marcha la aplicación rsync para poder tener dos directorios remotos sincronizados los ejemplos los voy a hacer con los directorios /home de dos de mis maquinas.

Comentar que la aplicación trabaja muy bien y esta muy estimada por los administradores de sistemas, aunque yo no la conocí hasta el viernes.

Nos conectaremos por SSH a la maquina remota:

ssh ip_de_la_otra_maquina

Y verificaremos que rsync esta instalado en las maquinas, después de comprobado simplemente usaremos un comando especifico para comenzar a poner en común los dos directorios:

rsync -e ssh -zarv –delete 192.168.0.1:/home/dabid /home/dabid

rsync -e ssh -zarv –delete maquinadestino:dir_origen dir_destino

La opción –delete hace que los ficheros que hayan sido eliminado en dir_origen sean automáticamente eliminados en dir_destino, esto sucederá cuando nos conectemos a la maquina.

El comando es muy estándar y se pueden hacer muchísimas mas cosas con el, como sincronizar hacia los dos lados y que los directorios estén sincronizados a cambios hechos en cualquier de las dos maquinas… Debajo dejo un manual. Pero os pego un ejemplo mas complejo encontrado en la wikipedia:

rsync –verbose –compress –rsh=/usr/local/bin/ssh –recursive \ –times –perms –links –delete –exclude “*bak” –exclude “*~” \ /www/* webserver:/www

Este comando ejecuta rsync en modo verboso (muestra mensajes de estado por la salida estándar), con compresión, a través de ssh, preservando fechas y permisos del archivo origen, incluyendo vínculos, borrando archivos que fueron borrados en el directorio origen, excluyendo backups y archivos temporales (*bak, *~); el origen es el contenido del directorio /www y el destino el directorio /www en el host webserver.

La primera vez que hagamos el volcado de datos, se hará una copia completo del directorio origen dentro de destino, a partir de la primera solo se copiaran las actualizaciones.

Un buen tutorial