Unison: configuraci贸n y automatizaci贸n de la sincronizaci贸n bidireccional de directorios en dos servidores


Getty Images / iStockphoto El

problema de sincronizar directorios en dos servidores con la familia de sistemas operativos Linux a bordo puede resolverse m谩s f谩cilmente si utiliza herramientas especializadas. Veamos c贸mo se puede hacer esto con Unison .

Quiz谩s tenga varios servidores y se enfrente a la tarea de sincronizar ciertos directorios en estos servidores. Por ejemplo, debe sincronizar el directorio / data en cada uno de estos servidores para que alguna aplicaci贸n tenga acceso a informaci贸n relevante. O tal vez solo necesite hacer una copia de seguridad peri贸dica de los datos de un servidor a otro de forma sincronizada.

Unison es similar a la utilidad de sincronizaci贸n rsync , pero a diferencia de ella, admite sincronizaci贸n bidireccional. Es decir, le permite sincronizar dos copias de archivos, actualizando cada copia en funci贸n de los cambios realizados.

Cuando se usa Unison en servidores, es deseable tener paquetes instalados como openssh-server y ssh, porque por razones de seguridad, la sincronizaci贸n se realiza mejor usando el protocolo SSH. Sin embargo, si conf铆a en la seguridad de su red (por ejemplo, el servidor puede usar la autenticaci贸n SSH sin contrase帽a), no puede molestarse.

驴Qu茅 m谩s se necesita para usar Unison?


Mostrar茅 todo el proceso usando dos servidores Ubuntu como ejemplo (ambos 18.04). Puede instalar y usar Unison con otras distribuciones, pero luego deber谩 cambiar el comando de instalaci贸n; de lo contrario, Unison puede instalarse desde repositorios est谩ndar (por supuesto, su usuario debe tener privilegios de sudo).

Usar茅 estos servidores:

  • servidor1 - 192.168.1.6
  • servidor2 - 192.168.1.19

C贸mo instalar Unison


Lo primero que debe tener cuidado es instalar Unison. Esto debe hacerse en ambos servidores. Vaya a ambos servidores e ingrese el comando:

sudo apt-get install unison unison-all -y

Espere a que la instalaci贸n de Unison se complete y contin煤e.

C贸mo generar y copiar una clave SSH


Primero, generamos la clave SSH solo para el servidor1 . Para hacer esto, use el comando:

ssh-keygen -t rsa

Cuando se le solicite ingresar una contrase帽a, simplemente presione la tecla ENTER.
Cuando se genera la clave, c贸piela en el servidor2 con el comando:

ssh-copy-id 192.168.1.19

Una vez que se copia la clave, puede proceder directamente a los negocios.

C贸mo usar Unison


Creemos un directorio de prueba para cada servidor con fines de prueba. Comando para servidor1 :

sudo mkdir -p /data1

Para el servidor2 :

sudo mkdir -p /data2

Luego, en ambos servidores, debe cambiar el nombre del propietario del directorio creado, de lo contrario, Unison no podr谩 escribir nada all铆. Como propietario, especifique el usuario que ejecutar谩 el comando Unison:

sudo chown -R $USER.$USER /data2

Haga lo mismo para el servidor1 :

sudo chown -R $USER.$USER /data1

Ponga algunos archivos de prueba en / data1 :

touch /data1/{test1,test2,test3}

Sincronizamos nuestros directorios con el siguiente comando (ejecut谩ndolo en el servidor1 ):

unison /data1 ssh://192.168.1.19//data2

Como est谩 intentando sincronizar estos directorios ra铆z por primera vez, recibir谩 una advertencia de que la sincronizaci贸n puede demorar un poco (pero en nuestro caso esto no suceder谩, ya que agregamos solo tres archivos de prueba del volumen m铆nimo al directorio). Si se tratara de una copia de seguridad en producci贸n, el primer lanzamiento realmente podr铆a llevar alg煤n tiempo.

As铆 que bebe t茅 la pr贸xima vez. Mientras tanto, presione Entrar para iniciar el proceso. Despu茅s de hacer esto, se le pedir谩 que confirme la sincronizaci贸n de cada archivo. Cuando termine, ingrese 'y' para continuar.

Dado que solo sincronizamos tres archivos de prueba, esto suceder谩 muy r谩pidamente y lo devolver谩 al shell bash. Para asegurarse de que los archivos est茅n sincronizados, vaya al servidor2e ingrese el comando:

ls /data2

Adem谩s, el sistema informar谩 que nuestros archivos test1, test2 y test3 est谩n en el directorio / data2 :



Logramos: Unison sincroniz贸 ambos directorios.

C贸mo iniciar Unison sin la necesidad de interacci贸n del usuario


Creo que no desea confirmar constantemente la sincronizaci贸n de cada archivo de directorio cada vez que inicie Unison. Esto es especialmente molesto cuando sincroniza directorios con una gran cantidad de archivos. Por lo tanto, se necesita automatizaci贸n. Vaya al servidor1 e ingrese el comando:

nano ~/.unison/default.prf

Cuando el archivo de configuraci贸n se abre para editar, agregue dos l铆neas:

auto=true
batch=true

Luego guarde y cierre el archivo.
Ahora Unison no te molestar谩 con peque帽eces. Pero eso no es todo.

C贸mo crear una tarea para Cron Scheduler


Creo que dif铆cilmente querr铆a comenzar la sincronizaci贸n manualmente, porque puede cometer un error en alg煤n lugar o, por ejemplo, no tener en cuenta el cambio en la estructura de directorios en los servidores. Para configurar la automatizaci贸n, debe crear un trabajo cron para el servidor1 .
Creemos un script para iniciar la sincronizaci贸n:

sudo nano /usr/local/bin/unisonsync

Lo siguiente debe agregarse a este archivo:

#!/bin/bash/
unison /data1 ssh://192.168.1.19//data2

A continuaci贸n, debe otorgarle al script el derecho de ejecuci贸n:

sudo chmod ugo+x /usr/local/bin/unisonsync

Cree un trabajo para Cron con el comando:

crontab -e

Despu茅s de ese tipo:

*/5 * * * * /usr/local/bin/unisonsync &> /dev/null

Ahora la sincronizaci贸n comenzar谩 autom谩ticamente cada 5 minutos.

He demostrado que Unison facilita la sincronizaci贸n de directorios en dos servidores Linux. Puede verificar esto usted mismo agregando archivos a los directorios de prueba / data1 y / data2 correspondientes en ambos servidores. Despu茅s de asegurarte de que la sincronizaci贸n funciona, puedes usarla en modo combate en servidores de producci贸n.



Como un anuncio


VDSina siempre se complace en ofrecer servidores confiables para cualquier tarea. Tiene acceso a una gran selecci贸n de sistemas operativos para la instalaci贸n autom谩tica, es posible instalar cualquier sistema operativo desde su propia imagen , as铆 como utilizar una red local de alta velocidad entre servidores dentro de la misma ubicaci贸n.


All Articles