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 upgradeA continuación, use el comando apt to simple para instalar la herramienta.
sudo apt-get install unison -ySi 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-gtkNOTA: 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.
- 192.168.0.200 - servidor1
- 192.168.0.201 - servidor2
El primer paso es crear una clave pública y privada en el servidor remoto1.
ssh-keygen -t rsaGenerando 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.201Ahora 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 / dir1En server2, cree un directorio como el anterior
mkdir -p / dir2Como 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 / dir1Teniendo 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 // dir2En 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.prfEn el archivo, agregue las siguientes líneas:
auto = verdaderolote = 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 / unisoncronEn 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 / unisoncronAhora edite su archivo cronjob con crontab:
sudo crontab -eSi 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 / nullTambié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:
- https: // www.cis.upenn.edu / ~ bcpierce / unison /
- https: // www.cis.upenn.edu / ~ bcpierce / unison / download / releases / stable / unison-manual.html