Sincronización bidireccional con Unison

unisonminiatura

Unison es una herramienta que permite sincronizar archivos entre dos maquinas en forma bi-direccional y multiplaforma.

Los que generalmente trabajamos en espacios diferentes, es muy util tener sincronizados ciertos directorios y archivos, para esto Unison es una potente herramienta que ofrece muchas posibilidades.

Es posible configurar Unison en diferentes esquemas, cuando la sincronizacion es múltiple la documentación recomienda establecer una maquina como “hub” y el resto como “spokes”, es decir una topología estrella donde Unison esta presente en los “spokes” y se sincroniza con el “hub”.

En mi caso hago lo contrario, sin complicaciones porque soy el unico usuario y reduzco la probabilidad de conflicto, Unison solo esta presente en una maquina y desde alli sincronizo las demas mediante perfiles.

Pongo un ejemplo característico:

+ casa: con los directorios D1, D2, D3

+ oficina: con los directorios D1, D2

+ Laptop: con los directorios D1, D3

Vamos entonces a ver como sincronizamos todo esto con Unison:

1.- Instalando Unison en Slackware

En Slackware no está el paquete disponible (prometo ponerlo) asi que vamos a compilar, para esto necesitamos un compilador llamado ocaml que se pueden descargar aquí,  y por su puesto los fuentes de Unison que los consiguen aquí.

- instalamos el paquete de ocalm

- descomprimimos unison y en su directorio: hacemos un make (se genera un ejecutable llamado unison)

- despues lo ponemos accesible: cp unison /usr/bin/

2. Configurando unison

Nuestro esquema es el siguiente:

unison-sync

Vamos a crear los directorios en los tres lugares:

mkdir /root/Desktop/doc-casa
mkdir /root/Desktop/doc-casa/D1
mkdir /root/Desktop/doc-casa/D2
mkdir /root/Desktop/doc-casa/D3
mkdir /root/Desktop/doc-laptop
mkdir /root/Desktop/doc-laptop/D1
mkdir /root/Desktop/doc-laptop/D3
mkdir /root/Desktop/doc-oficina
mkdir /root/Desktop/doc-oficina/D1
mkdir /root/Desktop/doc-oficina/D2

Unison permite la creación de perfiles, podemos ver nuestros perfiles en:

/root/.unison/

encontraremos por defecto uno que dice default.prf

Para nuestro esquema necesitamos dos archivos .prf:

1. casa-laptop.prf

2. casa-oficina.prf
—————————————————————————-

casa-laptop.prf

############################
# Archivo de sicronizacion
#   Casa <—-> Laptop
############################

# Rutas de sincronizacion
root = /root/Desktop/doc-casa
root = ssh://ip-laptop//root/Desktop/doc-laptop

# Directorios especificos

path = D1
path = D2

# Opciones
auto = true
batch = true
prefer = /root/Desktop/doc-casa

# Ignorar
ignore = Path */.directory
ignore = Path */Olds
ignore = Name {olds,*~,tmp,temp,.*}

—————————————————————————-

casa-oficina.prf

############################
# Archivo de sicronizacion
#   Casa <—-> Oficina
############################

# Rutas de sincronizacion
root = /root/Desktop/doc-casa
root = ssh://ip-oficina//root/Desktop/doc-oficina

# Directorios especificos

path = D1
path = D3

# Ignorar
ignore = Path */.directory
ignore = Path */Olds
ignore = Name {olds,*~,tmp,temp,.*}

—————————————————————————-

Para ejecutar la sincronizacion

unison casa-oficina

unison casa-laptop

Posted: junio 26th, 2009
at 6:18pm by pablo

Tagged with , , ,


Categories: Aplicaciones

Comments: 1 comment



 

Una respuesta

  1. Que tal Pablo,

    Excelente publicación, probaré la receta a ver que tal me va. En Debian parece estar empaquetado el unison.

    Saludos.

    felix VENEZUELA

    30 jun 09 a las 07:56

     


 

Respuesta: