Cómo sincronizar 2 equipos de manera bidireccional con Unison

Para los administradores de sistemas la tarea de realizar backups es una de las fundamentales, y hay que decir que conforme aumenta la cantidad de información que almacenamos en nuestros equipos eso también comienza a volverse realidad para los usuarios hogareños. Y claro, si somos los que más entendemos del tema en casa nos toca encargarnos de estas tareas, aunque por suerte eso no es problema para quienes utilizamos Linux ya que tenemos herramientas muy potentes y versátiles para estos menesteres, comenzando por el venerado rsync.

Sin embargo, se trata de una utilidad ‘unidireccional’, es decir que realiza su tarea de un equipo a otro, y para realizar la sincronización de manera bidireccional tendríamos que ejecutarla dos veces. Unison, en cambio, es una herramienta open source bidireccional, lo cual nos permite mantener dos directorios completamente sincronizados sin importar las modificaciones que realicemos en uno o en otro. Además de Linux, esta utilidad se encuentra disponible tanto en Windows como en Mac OS X , y esto es un plus importantísimo puesto que nos permite despreocuparnos respecto de la plataforma que utilice cada uno en sus equipos.

Veamos, entonces, cómo instalar Unison en Ubuntu, algo muy simple puesto que se encuentra en los repositorios oficiales:

# apt-get install unison unison-gtk

Luego de esto hay que crearse el perfil de Unison en ambos servidores o equipos a sincronizar, algo que logramos mediante la edición de un archivo de texto en el cual especificamos todos los aspectos fundamentales de su funcionamiento (directorios a sincronizar, a excluir, etc). El archivo lo podemos crear nosotros en nuestra carpeta personal, para lo cual ejecutamos lo siguiente:

# nano /home/usuario/.unison   (reemplazamos ‘usuario’ por nuestro nombre de usuario en ese equipo)

Luego, podemos añadir algo similar a lo siguiente a dicho archivo, modificando libremente de acuerdo a la necesidad de cada uno (nombres de usuario, carpetas, direcciones IP, etc):

# Los directorios a sincronizar
# Podemos sincronizar mediante SSH si utilizamos ssh://
root = /home/guille/carpeta
root = ssh://Esta dirección de correo electrónico está siendo protegida contra los robots de spam. Necesita tener JavaScript habilitado para poder verlo.//home/guille/carpeta
# Habilitar lo siguiente si queremos realizar la sincronización unidireccional
# force = /home/guille/carpeta
# El modo ‘batch’ especifica que Unison se ejecutará sin necesitar la participación del usuario, o sin que este ingrese comando alguno
batch = true
# El modo ‘auto’ especifica que Unison se ejecutará en modo automático
auto = true
# Si lo deseamos, podemos especificar la sincronización de subdirectorios dentro de los directorios establecidos inicialmente
# path = dir1
# path = dir2
# Podemos ignorar archivos o directorios añadiéndolos a estos listados, con soporte para expresiones regulares
# ignore = Name *.o
# ignore = Name *~
# ignore = Path */temp/archivo_*
# Si queremos ignorar diferencias en los permisos de usuario de los archivos o directorios
perms = 0

Dado que Unison ofrece soporte para SSH, RSH y Socket, podemos utilizar cualquiera de ellos en el archivo de configuración. Así, las siguientes tres alternativas darán el mismo resultado final:

root = ssh://usuario@hostremoto//ruta/hacia/archivo> 
root = rsh://usuario@hostremoto//ruta/hacia/archivo> 
socket://hostremoto:puerto//ruta/hacia/archivo

Desde luego, es necesario contar con SSH en ambos equipos:

# apt-get install ssh openssh-server

Si deseamos ingresar de uno a otro equipo sin necesidad de introducir la contraseña, podemos configurar SSH para acceso sin contraseña, algo que hace poco mostramos en un tutorial. Finalmente, utilizar Unison es muy sencillo y simplemente debemos ejecutar lo siguiente (válido para cualquiera de los 2 equipos):

$ unison

 

Fuente: ubunlog

¿Quién está en línea?

Hay 3674 invitados y ningún miembro en línea