Unison e la sincronizzazione di directory: differenze tra le versioni

Da Guide@Debianizzati.Org.
Vai alla navigazione Vai alla ricerca
Nessun oggetto della modifica
 
m (verificata)
 
(19 versioni intermedie di 6 utenti non mostrate)
Riga 1: Riga 1:
Uniso è un tool molto comodo che risolve uno dei più grandi problemi dei possesori di portatili (dopo il risparmio energetico, ovviamente): la sincronizzazione.
{{Versioni compatibili|Jessie|Stretch|Buster}}
== Introduzione ==
Unison è un tool molto comodo che risolve uno dei più grandi problemi dei possessori di portatili (dopo il risparmio energetico, ovviamente): la sincronizzazione.


Mi trovo spesso nella situazione in cui un semplice rsync non basta per sincronizzare le directory documenti, dato che ci sono state modifiche da entrambe le parti! Così mi viene in aiuto unison, che permette di gestire questo genere di situazioni.
Mi trovo spesso nella situazione in cui un semplice [[rsync]] non basta per sincronizzare le directory documenti, dato che ci sono state modifiche da entrambe le parti! Così mi viene in aiuto unison, che permette di gestire questo genere di situazioni.


Unison è utilizzabile sia da interfaccia grafica, sia da riga di comando. In questa guida le affronteremo entrambe!
Unison è utilizzabile sia da interfaccia grafica, sia da riga di comando. In questa guida le affronteremo entrambe.


__TOC__
== Installazione ==
 
I pacchetti sono due: ''unison'' ed ''unison-gtk'', il secondo necessario solo per l'interfaccia grafica. Con [[privilegi di amministrazione]] è sufficiente:
= Installazione =
I pacchetti sono due: ''unison'' ed ''unison-gtk'':
<pre>
<pre>
# apt-get install unison unison-gtk
# apt install unison unison-gtk
</pre>
</pre>


= Utilizzo =
== Utilizzo ==
=== Riga di Comando ===
L'utilizzo è semplice ed intuitivo; la sintassi da utilizzare è la seguente:
L'utilizzo è semplice ed intuitivo; la sintassi da utilizzare è la seguente:
<pre>
<pre>
Riga 19: Riga 20:
</pre>
</pre>


il comando permette la sincronizzazione tra le due directory. È possibile indicare la directory di un host remoto utilizzando il protocollo ssh:
il comando permette la sincronizzazione tra le due directory. È possibile indicare la directory di un [[host]] remoto utilizzando il protocollo [[SSH]]:
<pre>
<pre>
ssh://username@server/directory
ssh://username@server/directory
</pre>
</pre>


Supponendo di voler sincronizzare la directory Documenti presente sul dekstop con quella presente sul laptop, possiamo usare il seguente comando:
Supponendo di voler sincronizzare la directory Documenti presente sul desktop con quella presente sul laptop, possiamo usare il seguente comando:
<pre>
<pre>
$ unisoc ssh://username@ipdesktop/Documenti Documenti
$ unison ssh://username@ipdesktop/Documenti Documenti
</pre>
</pre>


Riga 43: Riga 44:
chgd dir <-?-> deleted    Avis/DonareAvis  []    </pre>
chgd dir <-?-> deleted    Avis/DonareAvis  []    </pre>
Si possono individuare 5 colonne:
Si possono individuare 5 colonne:
# host1: stato
# host1: stato del file
# azione
# verso dell'azione
# host2: stato
# host2: stato del file (se vuoto indica ''non presente'')
# File/Directory in questione
# File/Directory in questione
# Scelta suggerita
# Scelta suggerita


Se inseriamo un '?', otterremo una breve guida sulle opzioni disponibili:
Se inseriamo un '?', otterremo una breve guida sulle opzioni disponibili:
; f : sostituisci le raccomandazioni di Unison (equivale a premere invio)
; <code>f</code>: sostituisci le raccomandazioni di Unison (equivale a premere invio)
; I : ignora questa directory in modo definitivo
; <code>I</code>: ignora questa directory in modo definitivo
; E : ignora i file con questa estensione in modo definitivo
; <code>E</code>: ignora i file con questa estensione in modo definitivo
; N : ignora i percorsi che finiscono con questo nome
; <code>N</code>: ignora i percorsi che finiscono con questo nome
; m : effettua un merge tra i due file
; <code>m</code>: effettua un merge tra i due file
; d : mostra le differenze
; <code>d</code>: mostra le differenze
; x : mostra i dettagli
; <code>x</code>: mostra i dettagli
; l : elenca tutti i cambiamenti suggeriti
; <code>l</code>: elenca tutti i cambiamenti suggeriti
; p : vai alla scelta precedente
; <code>p</code>: vai alla scelta precedente
; b : come p
; <code>b</code>: come p
; g : procedi immediatamente ad applicare i cambiamenti proceed immediately to propagating changes
; <code>g</code>: procedi immediatamente ad applicare i cambiamenti
; q : esci senza effettuare alcun cambiamento
; <code>q</code>: esci senza effettuare alcun cambiamento
; / : salta
; <code>/</code>: salta
; > : effettua le modifiche da host1 a host2
; <code>></code>: effettua le modifiche da host1 a host2
; . : come >
; <code>.</code>: come >
  < or ,               propagate from from local to knio
; <code><</code>: effettua le modifiche da host2 a host1
; <code>,</code>: come <
 
=== Interfaccia Grafica ===
L'interfaccia grafica offre uno strumento sicuramente più intuitivo e facile da usare. A differenza della riga di comando, però, consente la creazione di profili (che verranno salvati in <code>~/.unison/</code> ), permettendo di riutilizzare ogni profilo in modo rapido (viene conservato un database dello stato dei file).
 
Per avviare l'interfaccia grafica, eseguiamo ''unison-gtk''.
 
Se è la prima volta che lo avviamo, ci verranno chiesti dei dati (la directory locale, quella remota) e verrà automaticamente creato un profilo. Inoltre riceveremo un messaggio di avvertimento, che notificherà la mancanza del database di sincronizzazione, che verrà subito creato.
 
[[Immagine:Unison.jpg|thumb|center|Schermata riepilogativa di Unison]]
 
Al termine della sincronizzazione, verrà mostrata una schermata riepilogativa che mostrerà le azioni consigliate (direttamente nella tabella) e le opzioni disponibili (sotto forma di tasti).
 
== Configurazioni d'esempio ==
=== Filesystem Fat ===
Unison sembra lo strumento perfetto per sincronizzare qualsiasi dispositivo, ma se viene utilizzato con dispositivi come chiavette USB o altri supporti formattati con FAT, si incorre in un errore banale ma non facilmente sormontabile (o meglio, non immediatamente): i permessi.
 
Se si cerca di sincronizzare una directory del proprio hard disk con una inserita in un filesystem FAT, la copia fallirà, in quanto unison non è in grado di propagare correttamente i permessi sui file (ricordo che non sono supportati dal filesystem FAT).
 
Per ovviare a questo problema, allego un profilo di unison (da modificare e collocare nella propria <code>~/.unison/</code> ) per sincronizzare la directory documenti della propria home con quella contenuta in una chiavetta USB:
 
<pre>
root = /home/maxer/Documenti/
root = /media/sda1/Documenti/
 
# utili per non copiare sporcizia
ignore = Name Thumbs.db
ignore = Name *~
ignore = Name *.tmp
 
#vengono ignorati i permessi
perms = 0000
</pre>
 
== Conclusioni ==
Questa piccola introduzione mostra l'utilizzo base di questo potente strumento. Nella directory <code>/usr/share/doc/unison</code> è presente dell'ottima manualistica, che mostra tutti i possibili utilizzi di questo programma ;-)
 
{{Autori
|Autore = [[Utente:MaXeR|MaXeR]] 22:08, 13 apr 2006 (CEST)
|Verificata_da =
:[[Utente:HAL 9000|HAL 9000]] 14:31, 18 apr 2015 (CEST)
|Estesa_da=
|Numero_revisori=1
}}
 
[[Categoria:Backup&restore]]

Versione attuale delle 09:29, 25 ago 2019

Debian-swirl.png Versioni Compatibili

Debian 8 "jessie"
Debian 9 "stretch"
Debian 10 "buster"

Introduzione

Unison è un tool molto comodo che risolve uno dei più grandi problemi dei possessori di portatili (dopo il risparmio energetico, ovviamente): la sincronizzazione.

Mi trovo spesso nella situazione in cui un semplice rsync non basta per sincronizzare le directory documenti, dato che ci sono state modifiche da entrambe le parti! Così mi viene in aiuto unison, che permette di gestire questo genere di situazioni.

Unison è utilizzabile sia da interfaccia grafica, sia da riga di comando. In questa guida le affronteremo entrambe.

Installazione

I pacchetti sono due: unison ed unison-gtk, il secondo necessario solo per l'interfaccia grafica. Con privilegi di amministrazione è sufficiente:

# apt install unison unison-gtk

Utilizzo

Riga di Comando

L'utilizzo è semplice ed intuitivo; la sintassi da utilizzare è la seguente:

$ unison  root1  root2  [opzioni]

il comando permette la sincronizzazione tra le due directory. È possibile indicare la directory di un host remoto utilizzando il protocollo SSH:

ssh://username@server/directory

Supponendo di voler sincronizzare la directory Documenti presente sul desktop con quella presente sul laptop, possiamo usare il seguente comando:

$ unison ssh://username@ipdesktop/Documenti Documenti

Verrà avviato il processo che controllerà lo stato delle due directory; al termine del controllo verranno poste delle domande sul da farsi, come nell'esempio sottostante:

Looking for changes
  Avis/5 minuti/PER CONOSCERE I NOSTRI ESAMI.doc
  Avis/Verbali/2004/20040609.pdf
  Universita/Architettura di Elaboratori/Sis/Introduzione_a_SIS-Algebra_di_Commutazione.pdf
  Universita/Sistemi Operativi/Slide/filesys-1_x2.pdf
  Universita/Sistemi Operativi/Slide/synchro-2_x1.pdf
  Waiting for changes from server
Reconciling changes

knio           local
chgd dir <-?-> deleted    Avis/DonareAvis  []    

Si possono individuare 5 colonne:

  1. host1: stato del file
  2. verso dell'azione
  3. host2: stato del file (se vuoto indica non presente)
  4. File/Directory in questione
  5. Scelta suggerita

Se inseriamo un '?', otterremo una breve guida sulle opzioni disponibili:

f
sostituisci le raccomandazioni di Unison (equivale a premere invio)
I
ignora questa directory in modo definitivo
E
ignora i file con questa estensione in modo definitivo
N
ignora i percorsi che finiscono con questo nome
m
effettua un merge tra i due file
d
mostra le differenze
x
mostra i dettagli
l
elenca tutti i cambiamenti suggeriti
p
vai alla scelta precedente
b
come p
g
procedi immediatamente ad applicare i cambiamenti
q
esci senza effettuare alcun cambiamento
/
salta
>
effettua le modifiche da host1 a host2
.
come >
<
effettua le modifiche da host2 a host1
,
come <

Interfaccia Grafica

L'interfaccia grafica offre uno strumento sicuramente più intuitivo e facile da usare. A differenza della riga di comando, però, consente la creazione di profili (che verranno salvati in ~/.unison/ ), permettendo di riutilizzare ogni profilo in modo rapido (viene conservato un database dello stato dei file).

Per avviare l'interfaccia grafica, eseguiamo unison-gtk.

Se è la prima volta che lo avviamo, ci verranno chiesti dei dati (la directory locale, quella remota) e verrà automaticamente creato un profilo. Inoltre riceveremo un messaggio di avvertimento, che notificherà la mancanza del database di sincronizzazione, che verrà subito creato.

Schermata riepilogativa di Unison

Al termine della sincronizzazione, verrà mostrata una schermata riepilogativa che mostrerà le azioni consigliate (direttamente nella tabella) e le opzioni disponibili (sotto forma di tasti).

Configurazioni d'esempio

Filesystem Fat

Unison sembra lo strumento perfetto per sincronizzare qualsiasi dispositivo, ma se viene utilizzato con dispositivi come chiavette USB o altri supporti formattati con FAT, si incorre in un errore banale ma non facilmente sormontabile (o meglio, non immediatamente): i permessi.

Se si cerca di sincronizzare una directory del proprio hard disk con una inserita in un filesystem FAT, la copia fallirà, in quanto unison non è in grado di propagare correttamente i permessi sui file (ricordo che non sono supportati dal filesystem FAT).

Per ovviare a questo problema, allego un profilo di unison (da modificare e collocare nella propria ~/.unison/ ) per sincronizzare la directory documenti della propria home con quella contenuta in una chiavetta USB:

root = /home/maxer/Documenti/
root = /media/sda1/Documenti/

# utili per non copiare sporcizia
ignore = Name Thumbs.db
ignore = Name *~
ignore = Name *.tmp

#vengono ignorati i permessi
perms = 0000

Conclusioni

Questa piccola introduzione mostra l'utilizzo base di questo potente strumento. Nella directory /usr/share/doc/unison è presente dell'ottima manualistica, che mostra tutti i possibili utilizzi di questo programma ;-)




Guida scritta da: MaXeR 22:08, 13 apr 2006 (CEST) Swirl-auth40.png Debianized 40%
Estesa da:
Verificata da:
HAL 9000 14:31, 18 apr 2015 (CEST)

Verificare ed estendere la guida | Cos'è una guida Debianized