June 23, 2007

Sincronizando ficheros con Unison

Quería encontrar una solución para poder sincronizar los datos de mi portatil con los del ordenador de sobremesa. Conocía rsync, que es una utilidad para sincronizar de forma eficiente ficheros y directorios entre dos ordenadores, pero sólo sincroniza de forma unidireccional. Así que no me servía ya que mi intención era que independientemente donde modificara algún fichero (portatil o sobremesa), pudiera sincronizar en ambos sentidos y que ambos equipos tuvieran los mismos datos.

La solución la encontre en unison. Unison permite mantener sincronizados diferentes directorios en el mismo ordenador o en ordenadores diferentes (incluso con diferentes sistemas operativos) utilizando ssh u otros métodos de compartición. Adem´s permite hacerlo en ambos sentidos así que ambos ordenadores tendr´n los mismos datos en los directorios sincronizados.

Una vez instalado el Unison, podemos ejecutar su interfaz gráfica o utilizar su interfaz gráfica. Si decidimos utilizar su interfaz gráfica, una vez ejecutada nos aparecerá una ventana donde podemos elegir un perfil ya creado o crear uno nuevo. Al crear uno nuevo, se nos pedirá el primer directorio (local) y seguidamente el segundo, al que podemos acceder por ssh (indicando el nombre o IP del host) o por el arbol de directorios local si la unidad del sistema remoto ya está montada. Una vez configurado, Unison comenzará a escanear los ficheros y directorios de ambos ordenadores y nos aparecerá un listado con todos los que se necesita actualizar hacia uno de los ordenadores o hacia otro (nos lo indicará mediante una flecha verde). En caso que Unison no sepa en qué dirección actualizar nos lo indicará mediante un símbolo de interrogación rojo. La dirección en la que se debe actualizar los ficheros se puede en la lista. Por último, pulsamos sobre el botón Go y comenzará la sincronización.

Por otra parte, si decidimos utilizar la línea de comandos, la sintaxis es la siguiente:

unison /directorio/local ssh://host//directorio/remoto

Por último comentar un problema que me ocurrió. Si lo que queremos es sincronizar contra una memoria USB formateada con FAT32, obtendremos un error al intentar Unison establecer los permisos de los ficheros. Para solucionar esto, podemos montar la memoria USB añadiendo la opcion quiet por lo que se ignorará los intentos de establecimiento de permisos en esa unidad y no nos dará error.