GNU/Linux >> Linux Esercitazione >  >> Linux

Come sincronizzare i file con Unison su Linux

Questo tutorial ti guiderà attraverso come installare lo strumento di sincronizzazione dei file Unison su Linux e come sincronizzare i file con Unison tra due diverse directory e/o dischi sullo stesso sistema e due diverse macchine Linux su una rete locale.

Introduzione a Unison

Unione è una piattaforma gratuita, open source, multipiattaforma e bidirezionale strumento di sincronizzazione dei file. Viene utilizzato per archiviare due repliche di file e directory su due sistemi diversi o dischi diversi sullo stesso sistema.

Le repliche di file e directory vengono modificate separatamente e quindi aggiornate propagando le modifiche in ciascuna replica all'altra.

In parole povere, qualsiasi modifica in una posizione verrà replicata in un'altra posizione e viceversa.

Poiché si tratta di un'applicazione multipiattaforma, è possibile sincronizzare file e directory tra computer che funzionano con diversi sistemi operativi.

Ad esempio, puoi sincronizzare i file archiviati in una macchina Linux con una macchina Windows o Unix e viceversa. Non solo il contenuto del file, anche la proprietà e le autorizzazioni del file verranno sincronizzate.

Se il contenuto è diverso su entrambe le repliche, provoca un conflitto. Unison rileverà e visualizzerà tali conflitti. In tal caso, è necessario indicare a Unison quale replica dovrebbe sovrascrivere l'altra. Gli aggiornamenti che non sono in conflitto verranno propagati automaticamente.

Unison funziona bene con qualsiasi coppia di computer collegati a una rete locale oa Internet. I file vengono sincronizzati su un sistema remoto tramite un ssh crittografato connessione.

Un'altra caratteristica notevole di Unison è che funziona bene su collegamenti lenti come le connessioni PPP. Simile a rsync , Unison trasferirà solo le parti di un file che sono state modificate.

L'implementazione integrata di Unison dell'algoritmo rsync rende il trasferimento degli aggiornamenti ai file esistenti molto veloce.

Unison è un programma a livello di utente, quindi non è necessario modificare il kernel o disporre dei privilegi di superutente su nessuno dei due host.

Il programma Unison è creato da Benjamin C. Pierce ed è rilasciato sotto licenza GPL. Funziona su piattaforme GNU/Linux, Windows e Unix.

Installa Unison su Linux

Unison è disponibile nei repository predefiniti nei repository ufficiali di molti sistemi operativi Linux.

Per installare Unison su Alpine Linux, esegui:

$ sudo apk add unison

Installa Unison su Arch Linux e le sue varianti come EndeavourOS e Manjaro Linux:

$ sudo pacman -S unison

Debian, Ubuntu, Linux Mint:

$ sudo apt install unison

Fedora:

$ sudo dnf install unison

CentOS 7:

Innanzitutto, abilita [EPEL] deposito:

$ sudo yum install epel-release

E poi installa unison:

$ sudo yum install unison

openSUSE:

$ sudo zypper install unison

C'è anche una semplice interfaccia grafica chiamata unison-gtk è disponibile per coloro che preferiscono la GUI rispetto alla CLI. È disponibile nei repository predefiniti in alcune distribuzioni Linux.

Su Alpine Linux, puoi installare Unison-gtk usando il comando:

$ sudo apk add unison-gui

Su Arch Linux e le sue varianti, installa Unison-gtk usando il comando:

$ sudo pacman -S unison-gtk2

Se sei su un sistema basato su Debian, installalo usando il seguente comando:

$ sudo apt install unison-gtk

Tieni presente che se desideri sincronizzare i file tra due sistemi diversi, devi installare Unison su tutti i sistemi che desideri mantenere sincronizzati. Inoltre, è consigliata la stessa versione su entrambi i sistemi.

Sincronizza i file con Unison su Linux

Possiamo usare Unison nelle seguenti tre diverse modalità:

  1. Sincronizza i file archiviati in directory diverse sulla stessa macchina,
  2. Sincronizza file e directory archiviati in dischi diversi sulla stessa macchina,
  3. Sincronizza file e directory tra macchine locali e remote:
    • Sincronizza i file con la macchina remota tramite una connessione socket diretta,
    • Sincronizza i file con la macchina remota utilizzando SSH.

1. Sincronizza i file archiviati in directory diverse sulla stessa macchina

Ai fini di questa guida, creerò due directory radice (cioè repliche) ovvero directory1 e directory2 .

$ mkdir ~/directory1
$ mkdir ~/directory2

Metti alcuni contenuti in una qualsiasi delle directory di cui sopra. Ho memorizzato alcuni file e directory all'interno di directory1 .

Diamo un'occhiata al contenuto di directory1 :

$ ls -ltRF directory1/

Risultato di esempio:

directory1/:
total 7780
drwxrwxr-x 2 sk sk    4096 Oct  2 15:35 dir1/
-rw-rw-r-- 1 sk sk 7779007 Sep 25 16:51 file2
-rw-rw-r-- 1 sk sk  179765 Aug 17 12:51 file1

directory1/dir1:
total 140
-rw-rw-r-- 1 sk sk 141729 Aug  6 22:34 file3

Come puoi vedere, ho una cartella chiamata dir1 e altri due file, ovvero file1 e file2 nella radice di directory1 . Dentro la dir1 , c'è un altro file chiamato file3 .

E la directory2 la replica non ha alcun contenuto.

$ ls -ltRF directory2/
directory2/:
total 0

Sincronizziamo queste due directory usando l'unisono con il comando:

$ unison directory1/ directory2/

Ti verrà chiesto se desideri continuare a sincronizzare il contenuto di directory1 con directory2 . Basta premere ENTER chiave. Successivamente, Unison ti chiederà di confermare i file e le directory da sincronizzare. Premi ENTER oppure premi f per confermare i file e le cartelle che si desidera sincronizzare. Infine, premi y e premi ENTER chiave per procedere con la propagazione degli aggiornamenti.

Contacting server...
Looking for changes
Warning: No archive files were found for these roots, whose canonical names are:
	/home/sk/directory1
	/home/sk/directory2
This can happen either
because this is the first time you have synchronized these roots, 
or because you have upgraded Unison to a new version with a different
archive format.  

Update detection may take a while on this run if the replicas are 
large.

Unison will assume that the 'last synchronized state' of both replicas
was completely empty.  This means that any files that are different
will be reported as conflicts, and any files that exist only on one
replica will be judged as new and propagated to the other replica.
If the two replicas are identical, then no changes will be reported.

If you see this message repeatedly, it may be because one of your machines
is getting its address from DHCP, which is causing its host name to change
between synchronizations.  See the documentation for the UNISONLOCALHOSTNAME
environment variable for advice on how to correct this.

Donations to the Unison project are gratefully accepted: 
http://www.cis.upenn.edu/~bcpierce/unison

Reconciling changestinue.[<spc>] / file1

directory1     directory2         
dir      ---->            dir1  [f] f
file     ---->            file1  [f] f
file     ---->            file2  [f] f

Proceed with propagating updates? [] y
Propagating updates


UNISON 2.48.4 started propagating changes at 15:43:29.75 on 02 Oct 2020
[BGN] Copying dir1 from /home/sk/directory1 to /home/sk/directory2
[END] Copying dir1
[BGN] Copying file1 from /home/sk/directory1 to /home/sk/directory2
[END] Copying file1
[BGN] Copying file2 from /home/sk/directory1 to /home/sk/directory2
[END] Copying file2
UNISON 2.48.4 finished propagating changes at 15:43:29.81 on 02 Oct 2020


Saving synchronizer state
Synchronization complete at 15:43:29  (3 items transferred, 0 skipped, 0 failed)

Ora, tutto il contenuto di directory1 verrà replicato in directory2 . Puoi verificarlo usando ls comando:

Vedere? I contenuti di entrambe le repliche sono identici. Come ho già accennato, vengono sincronizzati anche i permessi dei file e i numeri di inode di file e cartelle in entrambe le posizioni. Puoi vedere che i permessi e gli inode sono identici anche nell'output sopra.

Hai notato i segni di freccia nell'output durante la sincronizzazione delle directory? Ad esempio, dovresti aver notato le seguenti righe al centro dell'output:

directory1     directory2         
dir      ---->            dir1  [f] f
file     ---->            file1  [f] f
file     ---->            file2  [f] f

I segni di freccia indicano la direzione che il cambiamento deve essere propagato. Nel nostro caso, le frecce puntano da sinistra a destra. Significato:la dir1 , file1 e file2 vengono propagati alla seconda replica, ovvero directory2 .

Ora crea un nuovo file in directory2 replica e guarda cosa succede.

$ touch directory2/file4

Sincronizza le due repliche usando il comando:

$ unison directory1/ directory2/

Ora vedrai che una freccia punta da destra a sinistra. Significa che le modifiche nella seconda replica vengono propagate alla prima replica. In altre parole, il contenuto di directory2 vengono replicati in directory1 .

Contacting server...
Looking for changes
Reconciling changes

directory1     directory2         
         <---- new file   file4  [f] f

Proceed with propagating updates? [] y
Propagating updates


UNISON 2.48.4 started propagating changes at 16:04:08.78 on 02 Oct 2020
[BGN] Copying file4 from /home/sk/directory2 to /home/sk/directory1
[END] Copying file4
UNISON 2.48.4 finished propagating changes at 16:04:08.78 on 02 Oct 2020


Saving synchronizer state
Synchronization complete at 16:04:08  (1 item transferred, 0 skipped, 0 failed)

Unison riconoscerà automaticamente quali file devono essere aggiornati in entrambe le repliche. Quando esegui Unison per la prima volta, prenderà nota del timestamp di modifica, delle autorizzazioni, della proprietà e del numero di inode di tutti i file e le cartelle in entrambe le posizioni. Sulla base di queste informazioni, Unison deciderà quali file devono essere aggiornati quando si esegue nuovamente lo stesso comando. Come affermato in precedenza, tutte le informazioni verranno conservate in ~/.unison directory.

Per verificarlo tu stesso, modifica il contenuto di un file esistente. Modificherò il contenuto di file4 nella directory1 replica.

$ echo "Welcome to OSTechNix" > directory1/file4

Ora riavvia la sincronizzazione:

$ unison directory1/ directory2/

Questa volta Unison sincronizzerà i file modificati.

Contacting server...
Looking for changes
Reconciling changes

directory1     directory2         
changed  ---->            file4  [f] f

Proceed with propagating updates? [] y
Propagating updates


UNISON 2.48.4 started propagating changes at 16:05:27.13 on 02 Oct 2020
[BGN] Updating file file4 from /home/sk/directory1 to /home/sk/directory2
[END] Updating file file4
UNISON 2.48.4 finished propagating changes at 16:05:27.14 on 02 Oct 2020


Saving synchronizer state
Synchronization complete at 16:05:27  (1 item transferred, 0 skipped, 0 failed)

Come puoi vedere nell'output sopra, Unison ha rilevato quel file4 è stato modificato nella prima replica e sincronizzato con la seconda replica.

Se entrambe le repliche vengono modificate e il relativo contenuto è diverso, le modifiche sono in conflitto. In questi casi, Unison chiederà all'utente come propagare gli aggiornamenti su entrambi i lati. I conflitti verranno visualizzati con le frecce sinistra e destra come di seguito.

directory1     directory2         
new file <-?-> new file   file6  [] 

Se qualche azione predefinita è indicata da una freccia, premi semplicemente ENTER per passare al file modificato successivo. Se vuoi fare qualcosa di diverso con questo file, puoi premere "<" o ">" per forzare la propagazione della modifica da destra a sinistra o da sinistra a destra.

directory1     directory2         
new file <==== new file   file6  [] <

Se non vuoi apportare modifiche, premi semplicemente "/" per saltare questo file e lasciare in pace entrambe le repliche.

1.1. Profili all'unisono

Unison utilizza profili per sincronizzare file e cartelle tra due directory su macchine stesse o due diverse. Un profilo non è altro che un file di testo in cui definiamo il percorso effettivo delle directory principali e le preferenze di percorso che devono essere sincronizzate. Tutti i profili verranno archiviati in .unison directory nel tuo $HOME directory.

Quando esegui Unison per la prima volta, un profilo predefinito denominato default.prf viene creato in ~/.unison directory. Il profilo predefinito non ha preferenze definite. Quindi tutto ciò che è archiviato in una replica verrà sincronizzato con un'altra replica.

Possiamo anche creare profili personalizzati con l'elenco delle preferenze di percorso. Questo ti aiuterà a evitare di sincronizzare le due repliche intere.

Utilizzando i profili personalizzati, possiamo istruire Unison:

  • per sincronizzare file e cartelle specifici,
  • per ignorare un file specifico o un tipo specifico di file dalla sincronizzazione.

Vediamo un esempio.

Crea due repliche e salva alcuni file e cartelle in una replica e lascia vuota l'altra.

$ mkdir ~/directory1
$ mkdir ~/directory2

Quindi, crea un nuovo profilo chiamato dir_profile.prf :

$ nano .unison/dir_profile.prf

Definisci le directory principali e i percorsi di file e directory che desideri sincronizzare:

# Roots of the synchronization
root = /home/sk/directory1
root = /home/sk/directory2 

# Paths to synchronize 
path = dir1
path = file2

Le due radici possono essere date in qualsiasi ordine. Unison li ordinerà in un ordine canonico prima di fare qualsiasi altra cosa. Se non specifichi alcun percorso, Unison sincronizzerà semplicemente le due intere repliche, a partire dalla coppia di radici specificata. Se vengono fornite una o più preferenze di percorso, Unison sincronizzerà solo questi percorsi e i loro figli.

Nell'esempio sopra, ho definito la dir1 e file2 dovrebbe essere sincronizzato con un'altra directory principale. Salva e chiudi il file.

Dopo aver creato il profilo, avvia il processo di sincronizzazione utilizzando il comando:

$ unison dir_profile.prf

Ti verrà chiesto se desideri continuare a sincronizzare il contenuto di directory1 con directory2 . Basta premere ENTER e quindi premere f per confermare i percorsi da sincronizzare. Infine premi y e premi ENTER chiave per procedere con la propagazione degli aggiornamenti.

Contacting server...
Looking for changes
Warning: No archive files were found for these roots, whose canonical names are:
	/home/sk/directory1
	/home/sk/directory2
This can happen either
because this is the first time you have synchronized these roots, 
or because you have upgraded Unison to a new version with a different
archive format.  

Update detection may take a while on this run if the replicas are 
large.

Unison will assume that the 'last synchronized state' of both replicas
was completely empty.  This means that any files that are different
will be reported as conflicts, and any files that exist only on one
replica will be judged as new and propagated to the other replica.
If the two replicas are identical, then no changes will be reported.

If you see this message repeatedly, it may be because one of your machines
is getting its address from DHCP, which is causing its host name to change
between synchronizations.  See the documentation for the UNISONLOCALHOSTNAME
environment variable for advice on how to correct this.

Donations to the Unison project are gratefully accepted: 
http://www.cis.upenn.edu/~bcpierce/unison

Reconciling changestinue.[<spc>] | dir1

directory1     directory2         
dir      ---->            dir1  [f] 
file     ---->            file2  [f] 

Proceed with propagating updates? [] y
Propagating updates


UNISON 2.48.4 started propagating changes at 15:42:32.99 on 01 Oct 2020
[BGN] Copying dir1 from /home/sk/directory1 to /home/sk/directory2
[END] Copying dir1
[BGN] Copying file2 from /home/sk/directory1 to /home/sk/directory2
[END] Copying file2
UNISON 2.48.4 finished propagating changes at 15:42:33.04 on 01 Oct 2020


Saving synchronizer state
Synchronization complete at 15:42:33  (2 items transferred, 0 skipped, 0 failed)

Ora vai alla seconda replica directory2 e verifica se i contenuti sono sincronizzati.

1.1. Ignora i file dalla sincronizzazione

A volte, potresti non voler sincronizzare un file specifico o un tipo specifico di file. In tal caso, puoi definire quali file ignorare nel profilo come di seguito.

ignore=Name text.*
ignore=Name .*~
ignore=Name *.pdf

Per ulteriori profili di esempio, fare riferimento qui.

1.2. Sincronizza file e directory locali con unison-gtk

Alcuni di voi potrebbero non sentirsi a proprio agio con la riga di comando. Per fortuna, Unison ha una semplice interfaccia grafica che consente agli utenti di creare facilmente profili e sincronizzare file basati sui profili tramite una finestra grafica.

Assicurati di aver installato unison-gtk pacchetto come mostrato nella sezione di installazione sopra. Avvia unison-gtk dal menu o dal programma di avvio dell'applicazione.

Vedrai la finestra di selezione del profilo al primo avvio. Se hai già creato un profilo come descritto, lo vedrai lì.

Dalla finestra dei profili, puoi creare un nuovo profilo con nuove directory radice e percorsi da sincronizzare. Oppure puoi semplicemente modificare il profilo esistente e modificare le directory principali o aggiungere nuovi file o modificare i percorsi da sincronizzare.

Se non hai più bisogno di un profilo, sceglilo e fai clic su Elimina.

Sto per creare un nuovo profilo. Per farlo, fai clic su Aggiungi dalla finestra di selezione del profilo e fai clic su Avanti .

Inserisci un nome adatto per il tuo nuovo profilo con una piccola descrizione:

Quindi scegli il tipo di sincronizzazione che desideri eseguire. Poiché è la sincronizzazione tra due directory locali, ho scelto "local" .

Seleziona le due directory principali che desideri sincronizzare.

Selezionare la seguente casella di controllo se una delle directory principali si trova su una partizione FAT. Questo è in genere il caso di una chiavetta USB.

Infine, fai clic su Applica per creare il profilo.

Il profilo appena creato apparirà ora nella finestra di selezione del profilo. Selezionalo e fai clic su Apri.

La grafica Unison ora ti mostrerà le modifiche da apportare su entrambi i lati. Proprio come l'interfaccia della riga di comando Unison, anche l'azione predefinita è indicata da una freccia nell'interfaccia grafica. Come puoi vedere nello screenshot qui sotto, i file vengono propagati da sinistra a destra, ovvero dalla prima replica alla seconda replica. Se i contenuti delle repliche non sono identici, Unison ti chiederà istruzioni su quale replica dovrebbe sovrascrivere l'altra.

Se sei soddisfatto delle indicazioni per la propagazione delle modifiche, fai clic su Vai sulla barra degli strumenti o seleziona Sincronizzazione -> Vai dalla barra dei menu.

Una volta completata con successo la sincronizzazione, vedrai i segni di spunta nella sezione Stato.

2. Sincronizza file e directory archiviati in dischi diversi sulla stessa macchina

I file di sincronizzazione tra due dischi sono esattamente gli stessi di cui sopra. Assicurati solo di aver menzionato il percorso corretto della directory principale nell'unità esterna.

Ora sai come sincronizzare i file tra due directory nello stesso disco rigido e un disco diverso su un sistema locale. La sezione seguente spiega come sincronizzare i file tra due sistemi diversi.

3. Sincronizza file e directory tra macchine locali e remote

Come affermato in precedenza, Unison può sincronizzare file tra sistemi locali e remoti tramite connessione socket diretta e connessione SSH crittografata. Come già sai, SSH è molto migliore e più sicuro del metodo socket. Ai fini di questa guida, utilizzerò il metodo SSH per sincronizzare i file.

Assicurati di aver installato openSSH e Unison su entrambi i sistemi . Assicurati inoltre che entrambi i sistemi siano in grado di comunicare tramite SSH. Tieni presente che i tuoi sistemi locali e remoti dovrebbero avere la stessa versione di Unison .

Per verificare la versione di Unison, esegui il seguente comando sul tuo sistema locale e remoto:

$ unison -version
unison version 2.48.4

Poiché i file verranno sincronizzati tramite SSH, non importa se il sistema remoto ha unison-gtk o meno. L'interfaccia a riga di comando Unison è appena sufficiente su una macchina remota! Sul tuo computer locale, puoi utilizzare un'interfaccia testuale o grafica all'unisono.

3.1. Sincronizza file e directory tra macchine locali e remote dalla riga di comando

Ora sincronizziamo la directory1 dal nostro sistema locale alla directory1 nel sistema remoto usando l'unisono eseguendo il comando seguente:

$ unison directory1/ ssh://[email protected]/directory1/

Qui, [email protected] è il nome utente e l'indirizzo IP del mio sistema remoto.

Ti verrà chiesto di inserire la password del tuo utente remoto. Quindi premi INVIO per accettare di sincronizzare il contenuto di directory1 della macchina locale con directory 1 di macchina remota. Quindi premi f per confermare i percorsi da sincronizzare. Infine premi y e premi ENTER chiave per procedere con la propagazione degli aggiornamenti.

Contacting server...
[email protected]'s password: 
Connected [//ostechnix//home/sk/directory1 -> //ubuntuserver//home/ostechnix/directory1]
Looking for changes
Warning: No archive files were found for these roots, whose canonical names are:
	/home/sk/directory1
	//ubuntuserver//home/ostechnix/directory1
This can happen either
because this is the first time you have synchronized these roots, 
or because you have upgraded Unison to a new version with a different
archive format.  

Update detection may take a while on this run if the replicas are 
large.

Unison will assume that the 'last synchronized state' of both replicas
was completely empty.  This means that any files that are different
will be reported as conflicts, and any files that exist only on one
replica will be judged as new and propagated to the other replica.
If the two replicas are identical, then no changes will be reported.

If you see this message repeatedly, it may be because one of your machines
is getting its address from DHCP, which is causing its host name to change
between synchronizations.  See the documentation for the UNISONLOCALHOSTNAME
environment variable for advice on how to correct this.

Donations to the Unison project are gratefully accepted: 
http://www.cis.upenn.edu/~bcpierce/unison

Press return to continue.[<spc>]   Waiting for changes from server
Reconciling changes

local          ubuntuserver       
file     ---->            file1  [f] f
file     ---->            file2  [f] f

Proceed with propagating updates? [] y
Propagating updates


UNISON 2.48.4 started propagating changes at 14:49:18.44 on 03 Oct 2020
[BGN] Copying file1 from /home/sk/directory1 to //ubuntuserver//home/ostechnix/directory1
[BGN] Copying file2 from /home/sk/directory1 to //ubuntuserver//home/ostechnix/directory1
[END] Copying file1
[END] Copying file2
UNISON 2.48.4 finished propagating changes at 14:49:18.45 on 03 Oct 2020


Saving synchronizer state
Synchronization complete at 14:49:18  (2 items transferred, 0 skipped, 0 failed)

Il comando precedente replicherà il contenuto di directory1 dal sistema locale alla directory1 sul sistema remoto. Ora aggiungi un nuovo file o aggiorna un file esistente e prova a sincronizzare di nuovo. Dovresti vedere risultati simili su entrambi i lati.

Se vuoi sincronizzare il contenuto in un posto diverso dalla home directory sul sistema remoto, devi specificare il percorso assoluto della directory remota aggiungendo una barra aggiuntiva tra il nome host remoto e l'inizio del percorso> come di seguito:

$ unison directory1/ ssh://[email protected]//sync/the/files/here/

Se non desideri sincronizzare l'intera directory, crea semplicemente un profilo personalizzato e definisci i percorsi da sincronizzare come descritto nella sezione intitolata 1.1. Profili all'unisono sopra.

3.2. Sincronizza file e directory tra macchine locali e remote usando unison-gtk

Avvia l'applicazione Unison-gtk dal menu o dal programma di avvio. Fai clic su Aggiungi pulsante nella finestra di selezione del profilo per creare un nuovo profilo.

Fare clic su Avanti.

Inserisci il nome del profilo Unison e la sua descrizione e fai clic su Avanti.

Ecco il passaggio importante. Scegli "ssh" dalla casella a discesa Tipo di sincronizzazione. Immettere l'indirizzo IP o il nome host del sistema remoto e il nome utente remoto. Seleziona anche la casella "Abilita compressione" per migliorare le prestazioni di trasferimento dei dati.

Scegli le posizioni delle directory locali e remote che desideri sincronizzare.

Se una delle tue directory è su una partizione FAT, devi selezionare questa opzione. Questo è solitamente il caso delle unità USB.

Fai clic su Applica per completare la creazione del profilo.

Il profilo appena creato apparirà ora nella finestra di selezione del profilo. Seleziona il profilo e fai clic su Apri.

Ti verrà chiesto di inserire la password dell'utente remoto. Immettere la password e fare clic su OK.

Dopo aver inserito la password, Unison elencherà le modifiche da propagare da locale a remoto. L'azione predefinita è indicata da una freccia. Se non desideri l'azione predefinita, premi "da sinistra a destra" o "da destra a sinistra" opzioni nella barra dei menu per indicare quale replica dovrebbe sovrascrivere l'altra. Infine, fai clic su Vai replicare.

Unison ora replicherà l'intero contenuto della directory locale con la directory remota. Al termine della sincronizzazione, vedrai il segno di spunta nella sezione Stato.

Puoi verificare il contenuto di file e directory in entrambe le posizioni.

Il metodo precedente sincronizzerà l'intero contenuto della replica locale con la replica remota. Se desideri sincronizzare file o directory specifici, crea un profilo personalizzato e definisci i percorsi da sincronizzare come descritto nella sezione intitolata 1.1. Profili all'unisono sopra.

3.3. Imposta l'autenticazione basata su chiave SSH (opzionale)

Ogni volta che sincronizzi file tra due diversi sistemi tramite SSH, devi inserire la password dell'utente remoto. Se non si desidera inserire la password ogni volta, è possibile configurare l'autenticazione SSH senza password come descritto nel collegamento seguente. Non generare coppia di chiavi SSH con passphrase. In caso contrario, è comunque necessario inserire la password durante la sincronizzazione dei file tra i sistemi.

  • Come configurare l'autenticazione basata su chiave SSH in Linux

3.4. Imposta cron job (opzionale)

Possiamo sincronizzare i file automaticamente a intervalli di tempo specifici utilizzando cron job.

Ad esempio, aggiungi la seguente voce nel tuo crontab file per eseguire la sincronizzazione ogni giorno (Verrà eseguito alle 00:00):

0 0 * * * unison directory1/ ssh://[email protected]//home/ostechnix/directory1/

Per maggiori dettagli sull'impostazione dei lavori cron, fare riferimento alla seguente guida:

  • Una guida per principianti a Cron Jobs

Ricevere aiuto

Ho trattato solo le basi. Questo è appena sufficiente per impostare una sincronizzazione funzionante sul tuo sistema Linux. Se vuoi saperne di più sull'uso avanzato, fai riferimento alla sezione della guida di Unison.

Per visualizzare la pagina della documentazione locale, eseguire:

$ unison -doc topics

Vedrai l'elenco degli argomenti disponibili nella documentazione locale.

Documentation topics:
          about About Unison
         people People
          lists Mailing Lists and Bug Reporting
         status Development Status
        copying Copying
            ack Acknowledgements
        install Installation
       tutorial Tutorial
         basics Basic Concepts
       failures Invariants
        running Running Unison
            ssh Installing Ssh
           news Changes in Version 2.48.4

Type "unison -doc <topic>" for detailed information about <topic>
or "unison -doc all" for the whole manual

Per visualizzare le informazioni dettagliate su un argomento, ad esempio un tutorial all'unisono , esegui:

$ unison -doc tutorial

Puoi anche visualizzare l'intero manuale di Unison utilizzando il seguente comando:

$ unison -doc all

Ho anche allegato i link ufficiali di Unison alla fine di questa guida. Esamina la documentazione e familiarizza con il funzionamento di Unison. Una volta che hai imparato abbastanza, prova a configurare la sincronizzazione locale e/o remota con Unison in produzione.

Conclusione

Unison consente di mantenere in modo semplice ed efficiente due o più sistemi completamente sincronizzati tra loro, indipendentemente da ciò che viene modificato su uno qualsiasi dei sistemi. Se vuoi mantenere due istanze di una raccolta di file e directory su due sistemi aggiornati e identici, Unison è una buona scelta!


Linux
  1. Come installare Python su Linux

  2. Come installare Java su Linux

  3. Come crittografare i file con gocryptfs su Linux

  4. Come trovare file con il comando fd in Linux

  5. Come posso spostare i file con xargs su Linux?

Come configurare il firewall con UFW su Linux

Come installare Rclone in Linux e Unix

Come rimuovere file con estensione specifica in Linux

Come trovare file con il comando fd in Linux

Come scaricare file con il comando Curl in Linux

Come scaricare file con il comando Wget in Linux