Cómo sincronizar archivos con Unison en Linux

25,9K

Este completo tutorial explica¿Qué es el unísono?herramienta de sincronización de archivos, cómoinstalar Unison en Linuxy comosincronizar archivos con Unisonentre dos directorios y/o discos diferentes en el mismo sistema y dos máquinas Linux diferentes a través de una red de área local.

¿Qué es el unísono?

Unísonoes una herramienta de sincronización de archivos gratuita, de código abierto, multiplataforma y bidireccional. Se utiliza para almacenar dos réplicas de archivos y directorios en dos sistemas diferentes o discos diferentes en el mismo sistema.

Las réplicas de archivos y directorios se modifican por separado y luego se actualizan propagando los cambios en cada réplica a la otra.

Para decirlo en términos simples, cualquier cambio en una ubicación se replicará en otra ubicación y viceversa.

Al ser una aplicación multiplataforma, puedes sincronizar archivos y directorios entre computadoras que se ejecutan con diferentes sistemas operativos.

Por ejemplo, puede sincronizar archivos almacenados en una máquina Linux con máquinas Windows o Unix y viceversa. No solo se sincronizará el contenido del archivo, sino también la propiedad y los permisos del archivo.

Si el contenido es diferente en ambas réplicas, se produce un conflicto. Unison detectará y mostrará dichos conflictos. En ese caso, debe indicarle a Unison qué réplica debe anular a la otra. Las actualizaciones que no entren en conflicto se propagarán automáticamente.

Unison funciona bien con cualquier par de computadoras conectadas a una red de área local o a Internet. Los archivos se sincronizan con un sistema remoto a través de unssh cifradoconexión.

Otra característica notable de Unison es que funciona bien en enlaces lentos como las conexiones PPP. Similar asincronización, Unison solo transferirá las partes de un archivo que hayan sido modificadas.

La implementación incorporada del algoritmo rsync de Unison hace que la transferencia de actualizaciones a archivos existentes sea muy rápida.

Unison es un programa a nivel de usuario, por lo que no es necesario modificar el kernel ni tener privilegios de superusuario en ninguno de los hosts.

El programa Unison es creado porBenjamín C. Piercey se publica bajo licencia GPL. Funciona bajo plataformas GNU/Linux, Windows y Unix.

Instalar Unísono en Linux

Unison está disponible en los repositorios predeterminados de los repositorios oficiales de muchos sistemas operativos Linux.

Para instalar Unison en Alpine Linux, ejecute:

$ sudo apk add unison

Instale Unison en Arch Linux y sus variantes como EndeavourOS y Manjaro Linux:

$ sudo pacman -S unison

Debian, Ubuntu, Linux Mint:

$ sudo apt install unison

Fedor:

$ sudo dnf install unison

CentOS 7:

Primero, habilite[CÁLIDO]repositorio:

$ sudo yum install epel-release

Y luego instale al unísono:

$ sudo yum install unison

abiertoSUSE:

$ sudo zypper install unison

También hay una interfaz gráfica simple llamadaunísono-gtkestá disponible para aquellos que prefieren GUI a CLI. Está disponible en los repositorios predeterminados en algunas distribuciones de Linux.

En Alpine Linux, puede instalar Unison-gtk usando el comando:

$ sudo apk add unison-gui

En Arch Linux y sus variantes, instale Unison-gtk usando el comando:

$ sudo pacman -S unison-gtk2

Si tiene un sistema basado en Debian, instálelo usando el siguiente comando:

$ sudo apt install unison-gtk

Tenga en cuenta que si desea sincronizar archivos entre dos sistemas diferentes, debe instalar Unison en todos los sistemas que desee mantener sincronizados. Además, se recomienda la misma versión en ambos sistemas.

Sincronizar archivos con Unison en Linux

Podemos usar Unison en los siguientes tres modos diferentes:

  1. Sincronizar archivos almacenados en diferentes directorios en la misma máquina,
  2. Sincronizar archivos y directorios almacenados en diferentes discos en la misma máquina,
  3. Sincronice archivos y directorios entre máquinas locales y remotas:
    • Sincronizar archivos con una máquina remota a través de una conexión de socket directa,
    • Sincronice archivos con una máquina remota mediante SSH.

1. Sincronizar archivos almacenados en diferentes directorios en la misma máquina

Para los fines de esta guía, voy a crear dos directorios raíz (es decir, réplicas), a saberdirectory1ydirectory2.

$ mkdir ~/directory1
$ mkdir ~/directory2

Coloque algunos contenidos en cualquiera de los directorios anteriores. Guardé algunos archivos y directorios dentro.directory1.

Echemos un vistazo al contenido dedirectory1:

$ ls -ltRF directory1/

Salida de muestra:

directory1/:
total 7780
drwxrwxr-x 2 sk sk    4096 Oct  2 15:35 dir1/
-rw-rw-r-- 1 sk sk 7779007 Sep 25 16:51 file2
-rw-rw-r-- 1 sk sk  179765 Aug 17 12:51 file1

directory1/dir1:
total 140
-rw-rw-r-- 1 sk sk 141729 Aug  6 22:34 file3

Como puedes ver, tengo una carpeta llamadadir1y otros dos archivos a saberfile1yfile2en la raíz dedirectory1. Dentro dedir1, hay otro archivo llamadofile3.

Y eldirectory2la réplica no tiene ningún contenido.

$ ls -ltRF directory2/
directory2/:
total 0

Sincronicemos estos dos directorios al unísono con el comando:

$ unison directory1/ directory2/

Se le preguntará si desea continuar sincronizando el contenido dedirectory1condirectory2. Simplemente presioneENTERllave. A continuación, Unison le pedirá que confirme los archivos y directorios que desea sincronizar. PrensaENTERo presionefpara confirmar los archivos y carpetas que desea sincronizar. Finalmente, presioneyy golpearENTERclave para continuar con la propagación de actualizaciones.

Contacting server...
Looking for changes
Warning: No archive files were found for these roots, whose canonical names are:
	/home/sk/directory1
	/home/sk/directory2
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: 
https://www.cis.upenn.edu/~bcpierce/unison

Reconciling changestinue.[<spc>] / file1

directory1     directory2         
dir      ---->            dir1  [f] f
file     ---->            file1  [f] f
file     ---->            file2  [f] f

Proceed with propagating updates? [] y
Propagating updates


UNISON 2.48.4 started propagating changes at 15:43:29.75 on 02 Oct 2020
[BGN] Copying dir1 from /home/sk/directory1 to /home/sk/directory2
[END] Copying dir1
[BGN] Copying file1 from /home/sk/directory1 to /home/sk/directory2
[END] Copying file1
[BGN] Copying file2 from /home/sk/directory1 to /home/sk/directory2
[END] Copying file2
UNISON 2.48.4 finished propagating changes at 15:43:29.81 on 02 Oct 2020


Saving synchronizer state
Synchronization complete at 15:43:29  (3 items transferred, 0 skipped, 0 failed)
Sincronizar directorios con Unison desde la línea de comandos

Ahora, todos los contenidos dedirectory1será replicado adirectory2. Puedes verificarlo usandolsdominio:

Enumerar el contenido de las réplicas al unísono.

¿Ver? El contenido de ambas réplicas es idéntico. Como ya mencioné, los permisos de archivos y los números de inodo de archivos y carpetas en ambas ubicaciones también están sincronizados. Puede ver que los permisos y los inodos también son idénticos en el resultado anterior.

¿Notaste las marcas de flecha en el resultado al sincronizar los directorios? Por ejemplo, deberías haber notado las siguientes líneas en el medio del resultado:

directory1     directory2         
dir      ---->            dir1  [f] f
file     ---->            file1  [f] f
file     ---->            file2  [f] f

Las marcas de flecha indican ladirecciónque es necesario propagar el cambio. En nuestro caso, las flechas apuntan de izquierda a derecha. Significado – eldir1,file1yfile2se propagan a la segunda réplica, es decirdirectory2.

Ahora crea un nuevo archivo endirectory2réplica y ver qué pasa.

$ touch directory2/file4

Sincronice las dos réplicas usando el comando:

$ unison directory1/ directory2/

Ahora verás que una flecha apunta de derecha a izquierda. Significa que los cambios en la segunda réplica se propagan a la primera réplica. En otras palabras, el contenido dedirectory2se replican endirectory1.

Contacting server...
Looking for changes
Reconciling changes

directory1     directory2         
         <---- new file   file4  [f] f

Proceed with propagating updates? [] y
Propagating updates


UNISON 2.48.4 started propagating changes at 16:04:08.78 on 02 Oct 2020
[BGN] Copying file4 from /home/sk/directory2 to /home/sk/directory1
[END] Copying file4
UNISON 2.48.4 finished propagating changes at 16:04:08.78 on 02 Oct 2020


Saving synchronizer state
Synchronization complete at 16:04:08  (1 item transferred, 0 skipped, 0 failed)

Unison reconocerá automáticamente qué archivos deben actualizarse en ambas réplicas. Cuando ejecute Unison por primera vez, tomará nota de la marca de tiempo de modificación, los permisos, la propiedad y el número de inodo de todos los archivos y carpetas en ambas ubicaciones. Según esta información, Unison decidirá qué archivos deben actualizarse cuando vuelva a ejecutar el mismo comando. Como se indicó anteriormente, toda la información se mantendrá bajo~/.unisondirectorio.

Para verificarlo usted mismo, modifique el contenido de un archivo existente. Voy a modificar el contenido defile4endirectory1réplica.

$ echo "Welcome to OSTechNix" > directory1/file4

Ahora inicie la sincronización nuevamente:

$ unison directory1/ directory2/

Esta vez, Unison sincronizará los archivos modificados.

Contacting server...
Looking for changes
Reconciling changes

directory1     directory2         
changed  ---->            file4  [f] f

Proceed with propagating updates? [] y
Propagating updates


UNISON 2.48.4 started propagating changes at 16:05:27.13 on 02 Oct 2020
[BGN] Updating file file4 from /home/sk/directory1 to /home/sk/directory2
[END] Updating file file4
UNISON 2.48.4 finished propagating changes at 16:05:27.14 on 02 Oct 2020


Saving synchronizer state
Synchronization complete at 16:05:27  (1 item transferred, 0 skipped, 0 failed)

Como puede ver en el resultado anterior, Unison ha detectado quefile4Se ha cambiado en la primera réplica y se ha sincronizado con la segunda réplica.

Si ambas réplicas se modifican y sus contenidos son diferentes, entonces los cambios están en conflicto. En tales casos, Unison le preguntará al usuario cómo propagar las actualizaciones en ambos lados. Los conflictos se mostrarán con flechas izquierda y derecha como se muestra a continuación.

directory1     directory2         
new file <-?-> new file   file6  [] 

Si alguna acción predeterminada está indicada por una flecha, simplemente presioneENTERpara pasar al siguiente archivo modificado. Si desea hacer algo diferente con este archivo, puede presionar"<"o">"para forzar que el cambio se propague de derecha a izquierda o de izquierda a derecha.

directory1     directory2         
new file <==== new file   file6  [] <

Si no desea realizar ningún cambio, simplemente presione"/"para omitir este archivo y dejar ambas réplicas en paz.

1.1. Perfiles al unísono

Usos al unísonoperfilespara sincronizar archivos y carpetas entre dos directorios en la misma máquina o en dos máquinas diferentes. Un perfil no es más que un archivo de texto donde definimos la ruta real de los directorios raíz y las preferencias de ruta que deben sincronizarse. Todos los perfiles se almacenarán en.unisondirectorio en su$HOMEdirectorio.

Cuando ejecuta Unison por primera vez, aparece un perfil predeterminado llamadodefault.prfse crea bajo~/.unisondirectorio. El perfil predeterminado no tiene ninguna preferencia definida. Entonces, todo lo almacenado en una réplica se sincronizará con otra réplica.

También podemos crear perfiles personalizados con la lista de preferencias de ruta. Esto le ayudará a evitar sincronizar las dos réplicas completas.

Usando los perfiles personalizados, podemos indicarle a Unison:

  • para sincronizar archivos y carpetas específicos,
  • para ignorar un archivo específico o un tipo específico de archivos de la sincronización.

Veamos un ejemplo.

Cree dos réplicas y guarde algunos archivos y carpetas en una réplica y deje la otra vacía.

$ mkdir ~/directory1
$ mkdir ~/directory2

Luego, crea un nuevo perfil llamadodir_profile.prf:

$ nano .unison/dir_profile.prf

Defina los directorios raíz y las rutas de los archivos y directorios que desea sincronizar:

# Roots of the synchronization
root = /home/sk/directory1
root = /home/sk/directory2 

# Paths to synchronize 
path = dir1
path = file2

Las dos raíces se pueden dar en cualquier orden. Unison los ordenará en orden canónico antes de hacer cualquier otra cosa. Si no especifica ninguna ruta, Unison simplemente sincronizará las dos réplicas completas, comenzando desde el par de raíces dado. Si se dan una o más preferencias de ruta, Unison sincronizará solo estas rutas y sus hijos.

En el ejemplo anterior, he definido eldir1yfile2debe sincronizarse con otro directorio raíz. Guarde y cierre el archivo.

Después de crear el perfil, inicie el proceso de sincronización usando el comando:

$ unison dir_profile.prf

Se le preguntará si desea continuar sincronizando el contenido dedirectory1condirectory2. Simplemente presioneENTERy luego presionefpara confirmar las rutas a sincronizar. Finalmente presioneyy golpearENTERclave para continuar con la propagación de actualizaciones.

Contacting server...
Looking for changes
Warning: No archive files were found for these roots, whose canonical names are:
	/home/sk/directory1
	/home/sk/directory2
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: 
https://www.cis.upenn.edu/~bcpierce/unison

Reconciling changestinue.[<spc>] | dir1

directory1     directory2         
dir      ---->            dir1  [f] 
file     ---->            file2  [f] 

Proceed with propagating updates? [] y
Propagating updates


UNISON 2.48.4 started propagating changes at 15:42:32.99 on 01 Oct 2020
[BGN] Copying dir1 from /home/sk/directory1 to /home/sk/directory2
[END] Copying dir1
[BGN] Copying file2 from /home/sk/directory1 to /home/sk/directory2
[END] Copying file2
UNISON 2.48.4 finished propagating changes at 15:42:33.04 on 01 Oct 2020


Saving synchronizer state
Synchronization complete at 15:42:33  (2 items transferred, 0 skipped, 0 failed)
Synchronize Files With Unison From CommandlineSincronizar archivos con Unison desde la línea de comandos

Ahora ve a la segunda réplica.directory2y ver si los contenidos están sincronizados.

1.1. Ignorar archivos de la sincronización

A veces, es posible que no desee sincronizar un archivo específico o un tipo específico de archivos. Si es así, puede definir qué archivos ignorar en el perfil como se muestra a continuación.

ignore=Name text.*
ignore=Name .*~
ignore=Name *.pdf

Para obtener más perfiles de muestra, consulteaquí.

1.2. Sincronizar archivos y directorios locales con unison-gtk

Es posible que algunos de ustedes no se sientan cómodos con la línea de comando. Afortunadamente, Unison tiene una interfaz gráfica simple que permite a los usuarios crear perfiles y sincronizar archivos fácilmente según los perfiles a través de una ventana gráfica.

Asegúrate de haber instaladounison-gtkpaquete como se muestra en la sección de instalación anterior. Inicie unison-gtk desde el menú o el iniciador de aplicaciones.

Verá la ventana de selección de perfil en el primer inicio. Si ya ha creado un perfil como se describe, lo verá allí.

Unison profile selection windowVentana de selección de perfil al unísono

Desde la ventana de perfiles, puede crear un nuevo perfil con nuevos directorios raíz y las rutas para sincronizar. O simplemente puede editar el perfil existente y modificar los directorios raíz o agregar nuevos archivos o cambiar las rutas para sincronizar.

Edit Unison profilesEditar perfiles de Unison

Si ya no necesita un perfil, simplemente selecciónelo y haga clic en Eliminar.

Voy a crear un nuevo perfil. Para hacerlo, haga clicAgregarbotón de la ventana de selección de perfil y haga clicAdelante.

Create new profile in Unison-gtkCrear nuevo perfil en Unison-gtk

Ingrese un nombre adecuado para su nuevo perfil con una pequeña descripción:

Enter Unison profile name and descriptionIngrese el nombre y la descripción del perfil de Unison

Luego elija el tipo de sincronización que desea realizar. Como se trata de sincronización entre dos directorios locales, elegí"local".

Choose the type of synchronization in UnisonElige el tipo de sincronización en Unison

Seleccione los dos directorios raíz que desea sincronizar.

Select directories to synchronizeSeleccionar directorios para sincronizar

Seleccione la siguiente casilla de verificación si uno de sus directorios raíz está en una partición FAT. Este suele ser el caso de una memoria USB.

Synchronization involving a FAT partitionSincronización que involucra una partición FAT

Finalmente, haga clic en Aplicar para crear el perfil.

Create unison profileCrear perfil al unísono

El perfil recién creado aparecerá ahora en la ventana de selección de perfil. Selecciónelo y haga clic en Abrir.

Choose unison profileElige perfil al unísono

El gráfico de Unison ahora le mostrará los cambios que se realizarán en ambos lados. Al igual que la interfaz de línea de comandos de Unison, la acción predeterminada también se indica con una flecha en la interfaz gráfica. Como puede ver en la siguiente captura de pantalla, los archivos se propagan de izquierda a derecha, es decir, de la primera réplica a la segunda réplica. Si el contenido de las réplicas no es idéntico, Unison le pedirá instrucciones sobre qué réplica debe anular a la otra.

Si está satisfecho con las instrucciones para la propagación de cambios, haga clic enIren la barra de herramientas o seleccioneSincronización -> Irdesde la barra de menú.

Synchronize files with unison-gtk interfaceSincronizar archivos con la interfaz unison-gtk

Una vez que la sincronización se complete exitosamente, verá las marcas de verificación en la sección Estado.

Synchronization is successfully completed in unisonLa sincronización se completa con éxito al unísono

2. Sincronizar archivos y directorios almacenados en diferentes discos en la misma máquina

Los archivos de sincronización entre dos discos son exactamente iguales que los anteriores. Solo asegúrese de haber mencionado la ruta correcta del directorio raíz en el disco externo.

Ahora sabe cómo sincronizar archivos entre dos directorios en el mismo disco duro y en un disco diferente en un sistema local. La siguiente sección explica cómo sincronizar archivos entre dos sistemas diferentes.

3. Sincronizar archivos y directorios entre máquinas locales y remotas

Como se indicó anteriormente, Unison puede sincronizar archivos entre sistemas locales y remotos mediante una conexión de socket directa y mediante una conexión SSH cifrada. Como ya sabes, SSH es mucho mejor y más seguro que el método socket. A los efectos de esta guía, utilizaré el método SSH para sincronizar archivos.

Asegúrate de haber instaladoopenSSH y Unison en ambos sistemas. También asegúrese de que ambos sistemas puedan comunicarse a través de SSH. Tenga en cuenta que suLos sistemas locales y remotos deben tener la misma versión de Unison..

Para verificar la versión de Unison, ejecute el siguiente comando en su sistema local y remoto:

$ unison -version
unison version 2.48.4

Dado que los archivos se sincronizarán mediante SSH, no importa si el sistema remoto tiene unison-gtk o no. ¡La interfaz de línea de comandos Unison es suficiente en una máquina remota! En su máquina local, puede utilizar una interfaz al unísono gráfica o textual.

3.1. Sincronice archivos y directorios entre máquinas locales y remotas desde la línea de comandos

Ahora sincronicemos eldirectory1de nuestro sistema local aldirectory1en un sistema remoto usando unísono ejecutando el siguiente comando:

$ unison directory1/ ssh://[email protected]/directory1/

Aquí,[email protected]es el nombre de usuario y la dirección IP de mi sistema remoto.

Se le pedirá que ingrese la contraseña de su usuario remoto. Luego presione ENTER para aceptar sincronizar el contenido dedirectory1de máquina local condirectory1 de máquina remota. Entonces presionefpara confirmar las rutas a sincronizar. Finalmente presioneyy golpearENTERclave para continuar con la propagación de actualizaciones.

Contacting server...
[email protected]'s password: 
Connected [//ostechnix//home/sk/directory1 -> //ubuntuserver//home/ostechnix/directory1]
Looking for changes
Warning: No archive files were found for these roots, whose canonical names are:
	/home/sk/directory1
	//ubuntuserver//home/ostechnix/directory1
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: 
https://www.cis.upenn.edu/~bcpierce/unison

Press return to continue.[<spc>]   Waiting for changes from server
Reconciling changes

local          ubuntuserver       
file     ---->            file1  [f] f
file     ---->            file2  [f] f

Proceed with propagating updates? [] y
Propagating updates


UNISON 2.48.4 started propagating changes at 14:49:18.44 on 03 Oct 2020
[BGN] Copying file1 from /home/sk/directory1 to //ubuntuserver//home/ostechnix/directory1
[BGN] Copying file2 from /home/sk/directory1 to //ubuntuserver//home/ostechnix/directory1
[END] Copying file1
[END] Copying file2
UNISON 2.48.4 finished propagating changes at 14:49:18.45 on 03 Oct 2020


Saving synchronizer state
Synchronization complete at 14:49:18  (2 items transferred, 0 skipped, 0 failed)
Sync files and directories between local and remote machines using unisonSincronice archivos y directorios entre máquinas locales y remotas usando Unison

El comando anterior replicará el contenido dedirectory1del sistema local aldirectory1en el sistema remoto. Ahora agregue un archivo nuevo o actualice un archivo existente e intente sincronizar nuevamente. Deberías ver resultados similares en ambos lados.

Si desea sincronizar el contenido con otro lugar que no sea el directorio principal del sistema remoto, debe especificar la ruta absoluta del directorio remoto agregando unbarra diagonal adicional entre el nombre del host remoto y el comienzo de la rutacomo abajo:

$ unison directory1/ ssh://[email protected]//sync/the/files/here/

Si no desea sincronizar todo el directorio, simplemente cree un perfil personalizado y defina las rutas para sincronizar como se describe en la sección titulada1.1. Perfiles al unísonoarriba.

3.2. Sincronice archivos y directorios entre máquinas locales y remotas usando unison-gtk

Inicie la aplicación Unison-gtk desde el menú o el iniciador. Hacer clicAgregaren la ventana de selección de perfil para crear un nuevo perfil.

Add new unison profileAgregar nuevo perfil al unísono

Haga clic en Adelante.

Unison profile creation assistantAsistente de creación de perfiles Unison

Ingrese el nombre del perfil de Unison y su descripción y haga clic en Adelante.

Enter unison profile nameIngrese el nombre del perfil al unísono

Aquí está el paso importante. Elegir“ssh”desde el cuadro desplegable Tipo de sincronización. Ingrese la dirección IP o el nombre de host del sistema remoto y el nombre de usuario remoto. Marque también la casilla "Habilitar compresión" para mejorar el rendimiento de la transferencia de datos.

Choose SSH from synchronization kind drop-down boxElija SSH en el cuadro desplegable de tipo de sincronización

Elija las ubicaciones del directorio local y remoto que desee sincronizar.

Select local and remote directories to sync with UnisonSeleccione directorios locales y remotos para sincronizar con Unison

Si uno de sus directorios está en una partición FAT, debe marcar esta opción. Este suele ser el caso de las unidades USB.

Synchronization involving FAT partitionSincronización que involucra una partición FAT

Haga clic en Aplicar para completar la creación del perfil.

Click Apply to complete Unison profile creationHaga clic en Aplicar para completar la creación del perfil de Unison

El perfil recién creado aparecerá ahora en la ventana de selección de perfil. Seleccione el perfil y haga clic en Abrir.

Open Unison profileAbrir perfil de Unison

Se le pedirá que ingrese la contraseña de su usuario remoto. Ingrese la contraseña y haga clic en Aceptar.

Type the password of remote userIngrese la contraseña del usuario remoto

Después de ingresar la contraseña, Unison enumerará los cambios que se propagarán de local a remoto. La acción predeterminada se indica con una flecha. Si no desea la acción predeterminada, presione"de izquierda a derecha"o"De derecha a izquierda"opciones en la barra de menú para indicar qué réplica debe anular a la otra. Finalmente, haga clicIrpara replicar.

Sync files and directories between local and remote machines using unison-gtkSincronice archivos y directorios entre máquinas locales y remotas usando unison-gtk

Unison ahora replicará todo el contenido del directorio local con el directorio remoto. Una vez completada la sincronización, verá la marca de verificación en la sección Estado.

Sync local and remote directories with UnisonSincronizar directorios locales y remotos con Unison

Puede verificar el contenido de archivos y directorios en ambas ubicaciones.

El método anterior sincronizará todo el contenido de la réplica local con la réplica remota. Si desea sincronizar archivos o directorios específicos, cree un perfil personalizado y defina las rutas para sincronizar como se describe en la sección titulada1.1. Perfiles al unísonoarriba.

3.3. Configurar la autenticación basada en claves SSH (opcional)

Siempre que sincronice archivos entre dos sistemas diferentes a través de SSH, deberá ingresar la contraseña del usuario remoto. Si no desea ingresar la contraseña cada vez, puede configurar la autenticación SSH sin contraseña como se describe en el enlace a continuación. No genere un par de claves SSH con frase de contraseña. De lo contrario, aún deberá ingresar la contraseña al sincronizar archivos entre sistemas.

  • Cómo configurar la autenticación basada en claves SSH en Linux

3.4. Configurar trabajo cron (opcional)

Podemos sincronizar archivos automáticamente en un intervalo de tiempo específico mediante trabajos cron.

Por ejemplo, agregue la siguiente entrada en sucrontabarchivo para ejecutar la sincronizacióncada día(Se ejecutará a las 00:00):

0 0 * * * unison directory1/ ssh://[email protected]//home/ostechnix/directory1/

Para obtener más detalles sobre cómo configurar trabajos cron, consulte la siguiente guía:

  • Una guía para principiantes sobre trabajos cron

Obteniendo ayuda

Cubrí sólo lo básico. Esto es suficiente para configurar una sincronización que funcione en su sistema Linux. Si desea conocer un uso más avanzado, consulte la sección de ayuda de Unison.

Para mostrar la página de documentación local, ejecute:

$ unison -doc topics

Verá la lista de temas disponibles en la documentación local.

Documentation topics:
          about About Unison
         people People
          lists Mailing Lists and Bug Reporting
         status Development Status
        copying Copying
            ack Acknowledgements
        install Installation
       tutorial Tutorial
         basics Basic Concepts
       failures Invariants
        running Running Unison
            ssh Installing Ssh
           news Changes in Version 2.48.4

Type "unison -doc <topic>" for detailed information about <topic>
or "unison -doc all" for the whole manual

Para ver la información detallada sobre un tema, por ejemplo unísonotutorial, correr:

$ unison -doc tutorial

También puede mostrar el manual completo de Unison usando el siguiente comando:

$ unison -doc all

También adjunté los enlaces oficiales de Unison al final de esta guía. Lea la documentación y familiarícese con cómo funciona Unison. Una vez que haya aprendido lo suficiente, intente configurar la sincronización local y/o remota con Unison en producción.

Conclusión

Unison le permite mantener fácil y eficientemente dos o más sistemas completamente sincronizados entre sí sin importar lo que se cambie en cualquiera de los sistemas. Si desea mantener dos instancias de una colección de archivos y directorios en dos sistemas actualizadas e idénticas, ¡Unison es una buena opción!

Recursos:

Lectura relacionada:

  • Sincronice archivos entre múltiples sistemas con Syncthing
  • Cómo sincronizar directorios locales y remotos en Linux
  • Cómo sincronizar archivos y directorios usando Zaloha.sh

Actualizaciones del boletín

Ingrese su dirección de correo electrónico a continuación para suscribirse a nuestro boletín