Debian

Cómo utilizar Unison para sincronizar archivos entre servidores

Cómo utilizar Unison para sincronizar archivos entre servidores
Este tutorial le mostrará cómo configurar y usar la herramienta de sincronización de archivos Unison en sistemas Debian. Con Unison, puede sincronizar archivos entre dos discos o directorios diferentes en el mismo sistema o en otros dos sistemas a través de la red.

Que es Unison?

La tecnología Unison desarrollada por Benjamin C Pierce bajo la licencia GPL permite a los usuarios sincronizar dos instancias de un solo archivo en el mismo sistema pero con diferentes discos o con otros dos sistemas.

Unison le permite mantener una versión actualizada e idéntica del mismo archivo o directorio. Es utilizable en una amplia variedad de contextos, como SSH, lo que permite la transferencia segura de datos entre dispositivos o directorios.

La herramienta Unison es multiplataforma, lo que permite a los usuarios sincronizar archivos y directorios entre sistemas que ejecutan el mismo o diferentes sistemas operativos. Por ejemplo, puede sincronizar archivos de un sistema Linux a un sistema BSD. Debido a sus características de seguridad, Unison sincroniza archivos y directorios y aplica derechos de propiedad y permisos en ambos sistemas.

La herramienta Unison se desarrolló teniendo en cuenta la seguridad y puede sobrevivir a fallas donde ocurren interrupciones entre puntos de sincronización. Si Unison detecta conflictos de archivos y directorios, informa los conflictos existentes y permite a los usuarios seleccionar qué versión de los archivos deben aplicarse.

Unison puede trabajar con redes lentas o admitirlas, por lo que es una herramienta muy eficiente para el uso del ancho de banda. Solo sincroniza partes y directorios que han cambiado, evitando así cargas pesadas y actualizando el proceso de sincronización de manera muy fácil y rápida.

A pesar de su contexto de uso principal, Unison es una herramienta poderosa que se puede modificar para crear una amplia gama de casos de uso.

Este tutorial discutirá cómo instalar y configurar el sistema de sincronización de archivos Unison en Debian 10.

Cómo instalar Unison en Debian 10

Unison es una herramienta popular; por eso, está disponible en los repositorios oficiales de las principales distribuciones de Linux.

Para instalar la versión de línea de comandos de Unison en Debian, comience a actualizar el sistema:

sudo apt-get update && sudo apt-get upgrade

A continuación, use el comando apt to simple para instalar la herramienta.

sudo apt-get install unison -y

Si tiene un entorno de escritorio instalado en su sistema y prefiere una versión GUI de la herramienta, instale unison-gtk usando el comando:

sudo apt-get install unison-gtk

NOTA: Asegúrese de instalar Unison en ambas versiones de los sistemas en los que desea sincronizar archivos entre ellos. Por compatibilidad y para minimizar las posibilidades de errores, es mejor tener la misma versión de Unison en ambos sistemas.

Cómo sincronizar archivos con Unison

Unison nos proporciona formas de sincronizar archivos y directorios entre máquinas locales y máquinas remotas utilizando conexiones de socket directas y SSH. Dado que estamos sincronizando entre dos servidores Debian, omitiremos la sincronización de la máquina local.

Unison Remote y Remote Sync a través de SSH

Para sincronizar archivos y directorios entre máquinas remotas, deberá tener Unison instalado en ambos sistemas, tener acceso SSH tanto a los sistemas como a sus direcciones IP.

También puede utilizar su máquina local como un servidor y el dispositivo remoto como el otro servidor.

El primer paso es crear una clave pública y privada en el servidor remoto1.

ssh-keygen -t rsa
Generando par de claves rsa públicas / privadas.
Ingrese el archivo en el que guardar la clave (/ home / csalem /.ssh / id_rsa):
Directorio creado '/ home / csalem /.ssh '.
Ingrese la frase de contraseña (vacío si no hay contraseña):
Ingrese la misma contraseña nuevamente:
Su identificación se ha guardado en / home / csalem /.ssh / id_rsa.
Tu clave pública se ha guardado en / home / csalem /.ssh / id_rsa.pub.
La huella dactilar clave es:
SHA256: 4p5YuEBEa5lrINzqPgwHRVhSS0TNlIIl70A0q2MFcS8 csalem @ Debian-PC
La imagen artística aleatoria de la clave es:
+---[RSA 2048]----+
| + / @ =… |
| = * O == |
| ++ OE . |
| + * o… |
| o + = . S |
|++. o . |
| oo… o |
|.o . = . |
|… O o |
+----[SHA256]-----+

Omita rápidamente el proceso de generación de claves y guarde el archivo. No agregue una frase de contraseña porque puede dificultar la sincronización no supervisada entre los servidores.

A continuación, copie la clave del servidor1 al servidor2 usando el comando:

id-copia-ssh 192.168.0.201

Ahora que tiene la configuración SSH en ambos sistemas, puede iniciar Unison para sincronizar archivos y directorios.

Probemos el uso de Unison en ambos servidores creando el directorio que sincronizaremos en server1:

mkdir -p / dir1

En server2, cree un directorio como el anterior

mkdir -p / dir2

Como se mencionó, Unison respeta los permisos de los usuarios. Por lo tanto, es mejor cambiar los permisos y la propiedad en ambos directorios para asegurarse de que ambos directorios tengan privilegios de lectura y escritura.

A continuación, agregue todos los datos que desea sincronizar entre los servidores en dir1. Por ejemplo, agregue algunos archivos zip.

sudo mv ~ / Documentos.zip / dir1

Teniendo los archivos, queremos sincronizar en el directorio correcto, ejecute el comando Unison para sincronizar desde el servidor uno como:

unísono / dir1 ssh: // 192.168.0.201 // dir2

En el primer lanzamiento de Unison, recibirá una advertencia de que el proceso de sincronización puede tardar un poco. Si tiene archivos grandes en los directorios, esto puede llevar un tiempo, pero dado que solo lo estamos usando con fines de prueba, debería ser relativamente rápido.

Presione Entrar para iniciar el proceso de sincronización. Una vez que se complete el proceso de sincronización, vaya a server2, navegue a dir2 y enumere el contenido del directorio como:

cd / dir2 && ls -la
-rw-r - r-- 1 raíz raíz 436 5 de enero 12:57 Documentos.Código Postal

Modificación de la configuración de Unison

En la mayoría de los casos, no queremos sincronizar archivos de forma interactiva entre estos servidores, ya que el proceso es repetitivo e ineficiente. Podemos editar el archivo de configuración de Unison para permitir archivos de sincronización automática.

Utilice el siguiente comando para editar el archivo de configuración predeterminado:

sudo vi ~ /.unísono / predeterminado.prf

En el archivo, agregue las siguientes líneas:

auto = verdadero
lote = verdadero

Las líneas anteriores deshabilitan las indicaciones al sincronizar archivos, automatizando el proceso.

Configuración de Unison Cronjob

Una cosa segura es que los programadores son muy reacios a hacer las cosas manualmente, especialmente cuando es posible automatizar, que es el caso aquí. Podemos configurar un cronjob para que Unison realice la sincronización automáticamente.

En server1, cree un script bash simple para ejecutar el comando al unísono como:

sudo touch / usr / bin / unisoncron && sudo vi / usr / bin / unisoncron

En el archivo, comience con un shebang y agregue el comando de sincronización al unísono:

#!/ bin / bash /
unísono / dir1 ssh: // 192.168.0.201 // dir2

Como de costumbre, haga que el script ejecute los permisos:

sudo chmod 755 / usr / bin / unisoncron

Ahora edite su archivo cronjob con crontab:

sudo crontab -e

Si es la primera vez que edita crontab, espero que no lo sea, elija su editor e ingrese la siguiente línea para sincronizar con Unison cada 1 hora:

* / 60 * * * * / usr / bin / unisoncron &> / dev / null

También puede configurar crontab para que se ejecute en momentos específicos del día. Tampoco necesita usar un script y puede usar un comando sin formato en el crontab.

Conclusión

Este tutorial le mostró cómo instalar y configurar Unison en un sistema Debian para la sincronización de archivos y directorios.

Aunque esta guía rápida puede ayudarlo a comenzar, puede obtener más información utilizando las páginas de manual de Unison (páginas de manual) o la documentación oficial utilizando el recurso que se proporciona a continuación:

Los mejores juegos de línea de comandos para Linux
La línea de comandos no es solo su mayor aliado cuando usa Linux, también puede ser la fuente de entretenimiento porque puede usarla para jugar muchos...
Las mejores aplicaciones de mapeo de gamepad para Linux
Si te gusta jugar juegos en Linux con un gamepad en lugar de un sistema de entrada de teclado y mouse típico, hay algunas aplicaciones útiles para ti....
Herramientas útiles para jugadores de Linux
Si le gusta jugar juegos en Linux, es probable que haya utilizado aplicaciones y utilidades como Wine, Lutris y OBS Studio para mejorar la experiencia...