Pasar al contenido principal
08-04-2021

unisonUnison es una herramienta para sincronizar archivos y directorios entre diferentes sistemas o dentro de un mismo sistema. Incluso lo puede hacer entre plataformas diferentes, por ejemplo un ordenador Linux y otro que tenga otro sistema operativo, ya que es un programa multiplataforma disponible en los sistemas operativos más conocidos.

Un primer punto tiene que quedar claro, no es una herramienta para copias de seguridad. Por empleo si se borra un archivo en una de las dos réplicas, se borrará también en la otra, ya que la idea es mantener las copias sincronizadas. Si hay conflictos, por ejemplo se ha modificado un archivo de forma diferente en cada una de las réplicas, unison permitirá reconciliar el conflicto, escogiendo una de las dos versiones sobre la otra.

Puede tener diversas utilidades. En mi caso lo uso para mantener mi ordenador de casa (y de viaje, porque es un portátil) sincronizado con mi ordenador de trabajo, que es un ordenador de sobremesa. Así cuando tengo que trabajar en casa simplemente tengo que sincronizar el portátil, y cuando acabo de trabajar en casa volver a sincronizar para que el trabajo quede también guardado en el ordenador de mi despacho. En principio se podría mantener sincronizados más de un sistema, escogiendo en este caso un ordenador como referencia de los otros y sincronizando por ejemplo la tableta y el ordenador portátil contra este ordenador.

La sincronización se hace sobre lo que se conoce como un túnel ssh. Es decir, se usa la conexión ssh entre los ordenadores para hacer la trasmisión de datos, cosa que la hace segura. Por esta razón conviene tener acceso por clave privada ssh entre los ordenadores que se quieran sincronizar, para no tener que entrar la contraseña cada vez que se quiere sincronizar.

Para instalar unison en sistemas Debian o Ubuntu simplemente hay que dar la orden:

sudo apt install unison

Aquí muestro la orden que me permite sincronizar mi directorio de documentos entre el ordenador del trabajo y el de casa. Para eso tengo un script de bash que hace la sincronización. Este es su contenido:

#!/bin/bash

unison -batch /home/wgarcia/Docum ssh:/ordinador.feina.com//home/wgarcia/Docum

Este comando lo ejecuto en el portátil en mi casa, y sincronizo la carpeta "Docum" del despacho (el ordenador que se llama "ordinador.feina.com"). Simplemente ejecutando este script en el portatil se sincronizan los dos ordenadores. Si hay algún conflicto entre archivos, cosa que no tiene porqué pasar si se tiene cuidado de sincronizar siempre antes de trabajar sobre los mismos archivos, el comando nos indica el conflicto y se puede resolver mediante las opciones que se explican en diversos tutoriales que se pueden encontrar en Internet. Aunque la manera más sencilla de solucionar el conflicto es mover el archivo conflictivo fuera de los directorios que se sincronizan en las dos réplicas, sincronizar (no habrá conflicto), volver a poner la versión que se quiera conservar en una de las réplicas (que será donde estaba originalmente), y por último volver a sincronizar porque ya no habrá conficto (el archivo está en una sola réplica).

Funciona con Drupal

Theme by Danetsoft and Danang Probo Sayekti inspired by Maksimer