jueves, 11 de abril de 2013

Unison - una forma de mantener PCs sincronizados


Muchos de nosotros tenemos un PC de escritorio(Desktop) y un equipo portátil (Laptop, o Netbook --como en mi caso--) y siempre tenemos el problema de mantener nuestros dispositivos en sincronía. Piense, por ejemplo, que está trabajando en un proyecto y manipulando copias del mismo en su PC de escritorio y en su equipo portátil. Realizar sincronizaciones manuales puede enredar un poco las cosas, arriesgando información valiosa en el proceso.
Se ha dicho mucho sobre la opción de usar Dropbox, pero no siempre es posible utilizar este servicio para esta tarea (Pues Dropbox solo almacena 2GB en el plan básico gratuito. Es posible incrementar la cuota de espacio, pero hay situaciones donde Dropbox no es una solución inteligente).
Le dediqué algún tiempo a encontrar una buena aplicación que me permitiera sincronizar mis dispositivos y me encontré con Unison, que en palabras de la página oficial:
El logo de Unison

Este programa tiene la ventaja de ser multiplataforma, permitiendo sincronizar entre dos plataformas diferentes (por ejemplo, entre Linux y Windows), como añadidura, se encarga de controlar las versiones de los archivos controlando cuales son más recientes y permitiéndo que el usuario eliga que cambios se deben propagar entre las réplicas.
He probado este programa por cerca de dos meses y puedo decir que funciona de maravilla. Si usted necesita sincronizar dos o más directorios, debería darle una oportunidad.
Dentro de los usos que le he dado al programa, y los que se le pueden dar, están
  • Mantener mi Netbook y el Desktop sincronizados (exactamente con la misma información) en los directorios elegidos
  • Como una herramienta de respaldo de USB Flash, pues tengo un perfil configurado que me sincroniza el contenido de la misma en mi Netbook, así que, si necesito un poco de espacio adicional  puedo eliminar archivos sabiendo que tengo copias del mismo en otro lugar. Un ejemplo de esta necesidad es al montar ISO hibridas de Debian en una memoria USB, así no pierdo información y puedo restaurar la memoria a su estado inicial
  • Se pueden guardar varios perfiles de sincronización, así se pueden usar cuando sea necesario.
  • Puede utilizar SSH para realizar la sincronización, así que basta tener una red LAN o una WLAN en casa para sincronizar dispositivos. La mayor utilidad también se da sincronizando equipos remotos por SSH, pero no lo he probado.
Los manuales y tutoriales en inglés están Aquí.


Guía simplificada para el novato.


Instalando


En los sitemas GNU/Linux, Unison se puede instalar desde consola con permisos de superusuario, usando el comando su, o sudo. Posteriormente utilizamos un gestor de paquetes, en mi caso aptitude (pero apt-get servirá también)
# aptitude install unison-all unison-alll-gtk

Sincronizando PCs por SSH con Unison

La aplicación puede utilizarse mediante la línea de comandos, sin embargo, en aras de la brevedad ilustraré su uso mediante la interfaz de usario (en GTK). Supondremos que tenemos dos computadores que comparten una red local, ambos tienen instalado Debian GNU/Linux y la carpeta que queremos sincronizar está almacenada en un disco con formato NTFS (Una partición de Windows)
Al correr Unison aparece una ventana de selección de perfil, más o menos así:
Selección de perfil - Aparecen dos perfiles porque son los que tengo guardados.
Una vez allí, para crear un perfil se presiona el botón, Añadir al costado derecho de la ventana.


Al presionar añadir aparece este mensaje, presionamos adelante para continuar
Aparece un menú que solicita un Nombre y Descripción del perfil a crear, en este caso le puse Prueba

Acto seguido, aparece un menú que ofrece distintas opciones de sincronización, a saber, Sincronización Local, Sincronización vía SSH, y Sincronización vía RSH, o através de una conexión TCP
Tipo de conexión - Tipos de sincronización disponibles

Al elegir SSH aparecen más opciones:
Tipo de conexión - He seleccionado SSH como el tipo de conexión. 
Para configurar la conexión vía SSH es necesario proporcionar los datos del servidor remoto, y del usuario en el servidor remoto. Esta información se escribe en las casillas correspondientes (Si no entiende de lo que estoy hablando debería mirar este enlace y este tal vez).

Una vez se ha establecido el tipo de conexión, aparece un menú para elegir el directorio Local (el de la máquina en que se está configurando el Unison) y el menú remoto (Remoto porque elegimos sincronizar PC diferentes vía SSH)
Eligiendo directorios a Sincronizar
Para el caso en que la sincronización involucre particiones de windows, Unison ofrece la posibilidad de activar una casilla de verificación. Las razones para ello, es que el sistema de archivos FAT o NTFS no permiten la modificación de permisos como los sistemas de archivos ext2,ext3 o ext4 que son de uso común para las distribuciones de Linux.

Activo esta casilla pues la sincronización involucra particiones con tipo de Archivo FAT o NTFS
 Así ha terminado de configurar su perfil de Unison.


Creación de perfil terminada :D

Sincronizando Directorios - Utilizando el perfil

Atención: Unison debe estar instalado en todas las máquinas que desean sincronizarse, adicionalmente, deben tener la misma versión instalada. De otro modo no será posible sincronizar y le aparecerán mensajes de error.

Para utilizar el perfil creado, solo debe seleccionarlo en la ventana inicial de Unison y presionar el botón Abrir en la parte inferior de la ventana.
Selección de perfil - Aparecen dos perfiles, son los que tengo guardados.
Una vez se seleccionó el perfil y Unison encuentra al servido remoto (el otro PC), solicita la contraseña del usuario en el servidor remoto.
Conectando con el servidor remoto - Solicita contraseña para continuar
Una vez ingresada la contraseña, Unison buscará los cambios en ambas máquinas y sugerirá acciones pendientes. La primera columna de la izquierda, con nombre local indica el estado del directorio local, la segunda, action indica en verde la dirección hacia donde se propagarán los cambios, y la tercera columna indica el estado del directorio remoto (Icaro es el nombre del servidor remoto en este caso).
La columna status mostrará el progreso de cada archivo, finalmente la columna path indica el archivo en cuestión.
Preparando sincronización - Examinando diferencias entre directorios
Vemos que en la columna action en las primeras dos filas tiene direcciones distintas. La primera fila nos indica que se progará de Icaro a local un archivo nuevo (New File). Por su parte, la seguna fila muestra que un archivo nuevo se propagará de local al directorio remoto en el servidor Icaro.
Al iniciar la sincronización, veremos como cambia la columna status según se vaya completando cada acción pendiente.
Propagando cambios - Los PC se están sincronizando
Al finalizar, en la barra de estado (barra inferior) se indicará que la sincronización ha terminado.

Comentarios Finales

  • Según la página oficial de Unison, (específicamente acá en inglés) declaran que el software no tendrá mejoras respecto a sus versiones actuales, sin embargo se trabajará para que el programa siga siendo soportado e incluido en las distribuciones de software futuras (incluyendo los reportes de fallos). La razón para ello es que no disponen de un desarrollador que dedicado a la tarea de mejorar el software.

  • Llevo mucho tiempo preparando el tutorial, y por motivos de tiempo  --y espacio--  no puedo mostrar como se utilizan los demás métodos de sincronización. Espero que con esta "guía simplificada" sea suficiente para satisfacer las necesidades de la vida cotidiana. Si tiene cualquier pregunta, siéntase libre de dejar un comentario (o los que considere necesarios)

No hay comentarios.:

Publicar un comentario