Sincroniza tus ficheros con Unison

Cómo mantener sincronizados directorios en varios PCs de forma rápida y sencilla utilizando la herramienta libre unison-gtk.

Introducción

Si tienes varios PCs que usas frecuentemente (por ejemplo un portátil y el ordenador de casa o el del trabajo) tal vez te haya surgido la necesidad de tener ciertos directorios con información “sensible” sincronizados entre dichos PCs. Una forma muy sencilla de conseguir eso en GNU/Linux es utilizar la herramienta libre unison.

Ingredientes

  • unison
  • unison-gtk

En mi caso concreto, he utilizado la versión 2.9.1, es decir, los paquetes

  • unison2.9.1
  • unison2.9.1-gtk

Para instalarlos, desde Debian:

javieralso@richie:~$ sudo apt-get install unison2.9.1 unison2.9.1-gtk

Tienes que instalar los dos paquetes, ya que aunque unison-gtk necesita de unison, no lo instalará como dependencia. También necesitas ssh.

Una nota importante es que debes instalar la misma versión de unison en todas las máquinas que vayas a sincronizar. Si intentas sincronizar dos máquinas con distintas versiones de unison, se producirá un error y se abortará la sincronización.

Configurando unison

Este paso sólo hay que realizarlo en una de las máquinas. Suponiendo que has instalado unison2.9.1-gtk lo invocas:

javieralso@richie:~$ unison-2.9.1-gtk

Esto abrirá la ventana principal de unison-gtk. Ahora debes crear un perfil. Para ello pulsa el botón Create new profile y escribe un nombre para dicho perfil, por ejemplo “Documentos casa”.
Verás que se ha añadido dicho perfil a la lista de perfiles existentes. Si haces doble click te aparecerá una ventana en la que te pedirá que introduzcas el nombre del directorio que deseas sincronizar dentro de tu máquina local. Pon por ejemplo el directorio ~/Documentos. Pulsa en “aceptar” y pasarás a la ventana de selección del directorio con el que deseas sincronizar el directorio anterior.

Utiliza SSH para conectar, selecciona esa opción y elige el directorio en la máquina remota con el que deseas sincronizar tus archivos, por ejemplo ~/Documentos.
En el campo Host escribe IP del host con el que deseas sincronizar o el nombre de la máquina si están en el DNS de tu red. Si el usuario de la máquina remota es distinto del usuario de la máquina local en la que deseas sincronizar, escribe el nombre.

Sincronizando

Con lo anterior unison está configurado y listo para la sincronización. Ahora, en la ventana principal, selecciona el nombre del perfil que quieras. Dependiendo de la versión que tengas instalada, te pedirá la clave del usuario del equipo remoto, bien por consola (desde la que has invocado a unison-gtk) o bien en una ventana emergente. Una vez que introduces dicha contraseña, unison comenzará a escanear todos los archivos y subdirectorios contenidos en el directorio principal. La primera vez puede tardar tiempo. Cuando termine, verás aparecer una lista con todos los archivos y subdirectorios tanto en la máquina local como en la remota. unison hará una propuesta de actualización basada en la antiguedad de los archivos. Intentará que prevalezcan los archivos más modernos frente a los mas antiguos.

Todo ésto se verá con una flecha que indica la dirección en la que se llevará a cabo la actualización. Si hubiese dos archivos o subdirectorios con el mismo nombre y unison no supiese cual de los dos elegir, pondría una interrogación roja entre medias. Puedes cambiar la dirección de sincronización con las teclas de cursor. Cuando estés seguro, pulsa el botón GO y unison comenzará la sincronización.

La primera vez que se lleve a cabo la sincronización, es muy recomendable que uno de los directorios se encuentre completamente vacío; de ese modo se evitan mucho problemas.

Referencias