Debian

Come utilizzare Unison per sincronizzare i file tra i server

Come utilizzare Unison per sincronizzare i file tra i server
Questo tutorial ti mostrerà come configurare e utilizzare lo strumento di sincronizzazione di Unison File sui sistemi Debian. Utilizzando Unison, puoi sincronizzare i file tra due diversi dischi o directory nello stesso sistema o due altri sistemi sulla rete.

Cos'è Unison??

La tecnologia Unison sviluppata da Benjamin C Pierce sotto licenza GPL consente agli utenti di sincronizzare due singole istanze di file sullo stesso sistema ma dischi diversi o su altri due sistemi.

Unison ti consente di mantenere una versione aggiornata e identica dello stesso file o directory. È utilizzabile in un'ampia varietà di contesti, come SSH, consentendo il trasferimento sicuro di dati tra dispositivi o directory.

Lo strumento Unison è multipiattaforma e consente agli utenti di sincronizzare file e directory tra sistemi che eseguono lo stesso o sistemi operativi diversi. Ad esempio, puoi sincronizzare i file da un sistema Linux a un sistema BSD. Grazie alle sue funzionalità di sicurezza, Unison sincronizza file e directory e applica i diritti di proprietà e di autorizzazione su entrambi i sistemi.

Lo strumento Unison è stato sviluppato pensando alla sicurezza e può sopravvivere a guasti in cui si verificano interruzioni tra i punti di sincronizzazione. Se Unison rileva conflitti tra file e directory, segnala i conflitti esistenti e consente agli utenti di selezionare la versione dei file da applicare.

Unison può funzionare con o supporta reti lente, rendendolo uno strumento molto efficiente per l'utilizzo della larghezza di banda. Sincronizza solo le parti e le directory che sono cambiate, prevenendo così carichi pesanti e aggiornando il processo di sincronizzazione molto facilmente e rapidamente and.

Nonostante il suo contesto di utilizzo primario, Unison è uno strumento potente che può essere modificato per creare un'ampia gamma di casi d'uso.

Questo tutorial discuterà come installare e configurare Unison File Synchronization System su Debian 10.

Come installare Unison su Debian 10

Unison è uno strumento popolare; per questo motivo, è disponibile nei repository ufficiali delle principali distribuzioni Linux.

Per installare la versione da riga di comando di Unison su Debian, avvia l'aggiornamento del sistema:

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

Quindi, usa il semplice comando apt to per installare lo strumento.

sudo apt-get install unison -y

Se hai un ambiente desktop installato sul tuo sistema e preferisci una versione GUI dello strumento, installa unison-gtk usando il comando:

sudo apt-get install unison-gtk

NOTA: Assicurati di installare Unison su entrambe le versioni dei sistemi su cui desideri sincronizzare i file tra di loro. Per compatibilità e per ridurre al minimo le possibilità di errore, è meglio avere la stessa versione di Unison in entrambi i sistemi.

Come sincronizzare i file con Unison

Unison ci fornisce modi per sincronizzare file e directory tra macchine locali e macchine remote utilizzando connessioni socket dirette e SSH. Poiché stiamo sincronizzando tra due server Debian, salteremo la sincronizzazione della macchina locale.

Sincronizzazione remota e remota Unison tramite SSH

Per sincronizzare file e directory tra macchine remote, dovrai avere Unison installato in entrambi i sistemi, avere accesso SSH a entrambi i sistemi e ai loro indirizzi IP.

Puoi anche utilizzare la tua macchina locale come un server e il dispositivo remoto come l'altro server.

Il primo passo è creare una chiave privata e pubblica sul server remoto1.

ssh-keygen -t rsa
Generazione di una coppia di chiavi rsa pubblica/privata.
Inserisci il file in cui salvare la chiave (/home/csalem/.ssh/id_rsa):
Directory creata '/home/csalem/.ssh'.
Inserisci la passphrase (vuota per nessuna passphrase):
Inserisci di nuovo la stessa passphrase:
La tua identificazione è stata salvata in /home/csalem/.ssh/id_rsa.
La tua chiave pubblica è stata salvata in /home/csalem/.ssh/id_rsa.pub.
L'impronta digitale chiave è:
SHA256:4p5YuEBEa5lrINzqPgwHRVhSS0TNlIIl70A0q2MFcS8 csalem@Debian-PC
L'immagine artistica casuale della chiave è:
+---[RSA 2048]----+
|+/@=… |
|=*O== |
|++OE . |
|+*o… |
|o+= . S |
|++. o . |
|oo…o |
|.o . = . |
|… o o |
+----[SHA256]-----+

Salta rapidamente il processo di generazione della chiave e salva il file. Si prega di non aggiungere una passphrase perché può ostacolare la sincronizzazione non monitorata tra i server.

Quindi, copia la chiave da server1 a server2 usando il comando:

ssh-id-copia 192.168.0.201

Ora che hai configurato SSH su entrambi i sistemi, puoi avviare Unison per sincronizzare file e directory.

Testiamo l'uso di Unison su entrambi i server creando la directory che sincronizzeremo sul server1:

mkdir -p /dir1

Sul server2, crea una directory come sopra

mkdir -p /dir2

Come accennato, Unison rispetta i permessi degli utenti. Pertanto, è meglio modificare le autorizzazioni e la proprietà in entrambe le directory per garantire che entrambe le directory abbiano i privilegi di lettura e scrittura.

Quindi, aggiungi tutti i dati che desideri sincronizzare tra i server in dir1. Ad esempio, aggiungi alcuni file zip.

sudo mv ~/Documents.zip /dir1

Avendo i file, vogliamo sincronizzare nella directory giusta, eseguire il comando unison per sincronizzare dal server uno come:

unisono /dir1 ssh://192.168.0.201//dir2

Al primo avvio di Unison, riceverai un avviso che il processo di sincronizzazione può richiedere un po' di tempo. Se hai file di grandi dimensioni nelle directory, questo può richiedere del tempo, ma poiché lo stiamo usando solo a scopo di test, dovrebbe essere relativamente veloce.

Premi Invio per avviare il processo di sincronizzazione. Una volta completato il processo di sincronizzazione, vai su server2, vai su dir2 ed elenca il contenuto della directory come:

cd /dir2 && ls -la
-rw-r--r-- 1 radice radice 436 5 gennaio 12:57 Documenti.cerniera lampo

Modifica della configurazione unisono

Nella maggior parte dei casi, non vogliamo sincronizzare in modo interattivo i file tra questi server poiché il processo è ripetitivo e inefficiente. Possiamo modificare il file di configurazione Unison per consentire la sincronizzazione automatica dei file.

Utilizzare il comando seguente per modificare il file di configurazione predefinito:

sudo vi ~/.all'unisono/predefinito.per favore

Nel file, aggiungi le seguenti righe:

auto=vero
batch=vero

Le righe sopra disabilitano i prompt durante la sincronizzazione dei file, automatizzando il processo.

Configurazione di Unison Cronjob

Una cosa certa è che i programmatori sono molto contrari a fare le cose manualmente, specialmente quando è possibile automatizzare, come è il caso qui. Possiamo impostare un cronjob affinché Unison esegua automaticamente la sincronizzazione.

In server1, crea un semplice script bash per eseguire il comando unison come:

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

Nel file, inizia con uno shebang e aggiungi il comando unison sync:

#!/bin/bash/
unisono /dir1 ssh://192.168.0.201//dir2

Come al solito, dai allo script i permessi di esecuzione:

sudo chmod 755 /usr/bin/unisoncron

Ora modifica il tuo file cronjob con crontab:

sudo crontab -e

Se è la prima volta che modifichi crontab, spero che non lo sia, scegli il tuo editor e inserisci la seguente riga per sincronizzare con Unison ogni 1 ora:

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

Puoi anche impostare il crontab per l'esecuzione in orari specifici della giornata. Inoltre, non è necessario utilizzare uno script e puoi utilizzare un comando raw nel crontab.

Conclusione

Questo tutorial ti ha mostrato come installare e configurare Unison su un sistema Debian per la sincronizzazione di file e directory.

Sebbene questa guida rapida possa aiutarti a iniziare, puoi saperne di più utilizzando le pagine man di Unison (pagine di manuale) o la documentazione ufficiale utilizzando la risorsa fornita di seguito:

Tutorial OpenTTD
OpenTTD è uno dei giochi di simulazione aziendale più popolari in circolazione. In questo gioco, devi creare una meravigliosa attività di trasporto. T...
SuperTuxKart per Linux
SuperTuxKart è un fantastico titolo progettato per offrirti l'esperienza di Mario Kart gratuitamente sul tuo sistema Linux. È piuttosto impegnativo e ...
Tutorial Battaglia per Wesnoth
The Battle for Wesnoth è uno dei giochi di strategia open source più popolari a cui puoi giocare in questo momento. Non solo questo gioco è in svilupp...