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 upgradeQuindi, usa il semplice comando apt to per installare lo strumento.
sudo apt-get install unison -ySe 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-gtkNOTA: 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.
- 192.168.0.200 - server1
- 192.168.0.201 - server2
Il primo passo è creare una chiave privata e pubblica sul server remoto1.
ssh-keygen -t rsaGenerazione 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.201Ora 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 /dir1Sul server2, crea una directory come sopra
mkdir -p /dir2Come 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 /dir1Avendo i file, vogliamo sincronizzare nella directory giusta, eseguire il comando unison per sincronizzare dal server uno come:
unisono /dir1 ssh://192.168.0.201//dir2Al 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 favoreNel file, aggiungi le seguenti righe:
auto=verobatch=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/unisoncronNel 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/unisoncronOra modifica il tuo file cronjob con crontab:
sudo crontab -eSe è 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/nullPuoi 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:
- https://www.cis.upenn.edu/~bcpierce/unison/
- https://www.cis.upenn.edu/~bcpierce/unison/download/releases/stable/unison-manual.html