Unison: una herramienta de sincronización de archivos local / remota definitiva para Linux


La sincronización de archivos es el proceso de duplicación de archivos y datos en dos o más ubicaciones de acuerdo con ciertos protocolos. Los archivos y los datos son lo más valioso en esta era de la tecnología de la información. Mediante la sincronización de archivos, nos aseguramos de que una o más copias de nuestros datos invaluables estén siempre disponibles en caso de desastre de cualquier tipo o cuando necesitemos trabajar en muchos lugares.

Se supone que un buen sincronizador de archivos tiene las siguientes características:

  1. Cryptographic synchronisation, as a security Implementation.
  2. A good ratio data compression.
  3. A Perfect algorithm implementation to check data duplication.
  4. Keep track of file source change.
  5. Scheduled Synchronisation.

Una de esas herramientas es Unison. Aquí en este artículo discutiremos "Unison" en detalle, junto con sus características, funcionalidad y mucho más.

¿Qué es Unison?

Unison es una aplicación de sincronización de archivos multiplataforma que es útil para sincronizar datos entre dos o más ubicaciones, ya sean computadoras o dispositivos de almacenamiento.

  1. Released under General Public License (GPL)
  2. Open Source and Cross Platform Available for (Linux, Unix, BSD, Windows, Mac)
  3. Make available same version of file across different machine, regardless of last modified location.
  4. Cross Platform Synchronization possible i.e., a Windows machine can be synchronized over a *nix Server.
  5. Communicate over standard Protocol TCP/IP i.e., possible between any two machines over internet regardless of Geographical Location.
  6. Smart Management – Show conflict when a file has been modified on both source and show it to the user.
  7. Secured SSH Connection – An encrypted data transfer.
  8. rsync algorithm is deployed here, only the modified part is transferred and overwritten. Hence. it’s fast in execution and Maintenance.
  9. Robust in nature
  10. Written in “Objective Caml” programming Language.
  11. Matured and Stable, no active development required.
  12. It is a user-level program ie., Application don’t need superuser privileged.
  13. It is known for its clear and precise specification.

Instalación de Unison en Linux

La versión estable actual (Unison-2.40.102) se puede descargar desde el siguiente enlace:

Descargar Unison 2.40.102 Estable

Alternativamente, también podemos descargar e instalar "Unison", si está disponible en repositorio usando el comando apt o yum como se muestra a continuación.

Abra el terminal usando “Ctr + Alt + T” y ejecute el siguiente comando en el terminal.

$ sudo apt-get install unison

Primero, habilite el repositorio EPEL y luego instálelo usando el siguiente comando.

$ sudo yum install unison

NOTA: El comando anterior instalará Unison sin GUI. Si necesita instalar Unison con soporte GUI, instale el paquete "unison-gtk" (solo disponible para distribuciones basadas en Debian) usando el siguiente comando.

# apt-get install unison-gtk

Cómo utilizar Unison

Unison se utiliza para sincronizar un conjunto de archivos en un árbol de directorios a otra ubicación con una estructura similar, que puede ser un host local o un host remoto.

Creemos 5 archivos en su Escritorio y luego sincronizémoslos con una carpeta llamada "escritorio" en su directorio personal.

$ cd Desktop/
$ touch 1.txt 2.txt 3.txt 4.txt 5.txt
$ ls

1.txt 2.txt 3.txt 4.txt 5.txt
$ mkdir /home/server/desk-back

Ahora ejecute el comando "unísono" para sincronizar los archivos de su escritorio en "escritorio" en su directorio de inicio.

$ unison /home/server/Desktop /home/server/desk-back/
Contacting server...
Looking for changes
Warning: No archive files were found for these roots, whose canonical names are:
/home/server/Desktop
/home/server/desk-back
This can happen either
because this is the first time you have synchronized these roots,
or because you have upgraded Unison to a new version with a different
archive format.
Update detection may take a while on this run if the replicas are
large.
Unison will assume that the 'last synchronized state' of both replicas
was completely empty. This means that any files that are different
will be reported as conflicts, and any files that exist only on one
replica will be judged as new and propagated to the other replica.
If the two replicas are identical, then no changes will be reported.If you see this message repeatedly, it may be because one of your machines
is getting its address from DHCP, which is causing its host name to change
between synchronizations. See the documentation for the UNISONLOCALHOSTNAME
environment variable for advice on how to correct this.
Donations to the Unison project are gratefully accepted:
http://www.cis.upenn.edu/~bcpierce/unison
Press return to continue.[]
...
...
Saving synchronizer state
Synchronization complete at 13:52:15 (5 items transferred, 0 skipped, 0 failed)

Ahora verifique la ubicación/casa/servidor/escritorio, si el proceso de sincronización fue exitoso.

$ cd /home/server/desk-back/
$ ls

1.txt 2.txt 3.txt 4.txt 5.txt

Para la sincronización remota de archivos, debe tener la misma versión de Unison instalada en el servidor local y remoto. Ejecute el siguiente comando para verificar que el unísono local puede iniciarse y conectarse al servidor unísono remoto.

$ unison -testServer /home/ravisaive/Desktop/ ssh://172.16.25.125//home/ravisaive/Desktop/
Contacting server...
[email protected]'s password: 
Connected [//tecmint//home/ravisaive/Desktop -> //tecmint//home/ravisaive/Desktop]

Los resultados anteriores indican que el servidor remoto está conectado correctamente, ahora sincronice los archivos usando el siguiente comando.

$ unison -batch /home/ravisaive/Desktop/ ssh://172.16.25.125//home/ravisaive/Desktop/

El primer paso es configurar el perfil, que requiere que configure información básica como el nombre de un perfil y lo que desea sincronizar, la ubicación de origen y destino, etc.

Para iniciar la GUI de Unison, ejecute el siguiente comando en la terminal.

$ unison-gtk

Una vez que se crea el perfil y se ingresa la fuente y el destino, se nos da la bienvenida con la siguiente ventana.

Simplemente seleccione todos los archivos y haga clic en Aceptar. Los archivos comenzarán a sincronizarse desde ambas direcciones, según la última marca de tiempo de actualización.

Conclusión

Unison es una herramienta maravillosa que hace posible tener una sincronización personalizada en ambos sentidos (bidireccional), disponible en la GUI y en la utilidad de línea de comandos. Unison ofrece lo que promete. Esta herramienta es muy fácil de usar y no requiere ningún esfuerzo adicional. Como tester, quedé muy impresionado con esta aplicación. Tiene muchas características que se pueden implementar según sea necesario. Para obtener más información, lea unison-manual.

  1. Rsync (Remote Sync) of Files
  2. Rsnapshot (Rsync Based) File Synchronizer

Eso es todo por ahora. Pronto estaré aquí de nuevo con otro artículo interesante. Hasta entonces, estad atentos y conectados a Tecmint. No olvide enviarnos sus valiosos comentarios en nuestra sección de comentarios.