Usare Unison è molto facile, in quanto dispone sia di una interfaccia grafica sia di una a linea di comando (CLI, command line interface).
Installazione
GNU/Linux
Probabilmente la vostra distribuzione lo include già, perlomeno su DebIan c’è 🙂
Quindi basterà eseguire:
# apt-get install unison unison-gtk
e il gioco è fatto. Eventualmente installare anche il pacchetto openssh.
Microslot Widows
Una volta scaricato il binario dovrai scomprimerlo e installarlo che so in c:BinUnisonGTK.exe. E’ disponibile anche la versione CLI , senza interfaccia grafica, ma che consente di fare esattamente le stesse cose.
Per poter utilizzare Unison con l’SSH è necessario installare anche la suite CYGWIN , in poche parole il port in ambiente Widows di una moltitudine di applicazioni e utility Unix, generalmente sotto licenza GPL. La suite dispone di un buon installatore, che consente sia di prelevare il software direttamente da Internet, sia di scaricarlo prima localmente e procedere poi all’installazione. L’unico pacchetto indispensabile al nostro scopo è openssh, ma credo che il set minimo sia costituito dai seguenti:
- zlib
- diff
- bash
- openssh
Una volta installati, ti verrà proposta una directory dove installare la suite (c:Cygwin); quella directory conterrà un ambiente simile ai sistemi Unix, ed in particolare la directory bin, che dovrai aggiungere alla variabile d’ambiente PATH aggiungendo una riga del tipo:
PATH=%PATH%;C:\CygWin\Bin
nel file c:autoexec.bat, oppure nelle Variabili di Sistema.
Esempi di utilizzo
Nei seguenti esempi, utilizzerò la versione CLI in ambiente GNU/Linux, ma dovrebbero funzionare ugualmente anche sotto Widows, posto che l’eseguibile sia in una directory presente nella vostra PATH.
Una sola macchina
Supponiamo di avere due directory, /home/lele/public_html/sito e /home/lele/sito_in_costruzione. La prima directory è evidentemente una sottodirectory della mia home page, visibile all’esterno, mentre la seconda è dove apporto le modifiche.
Con un semplice:
$ unison /home/lele/public_html/sito /home/lele/sito_in_costruzione
farò partire il processo che porterà alla sincronizzazione delle due directory, vale a dire che alla fine entrambe le directory conterranno esattamente lo stesso contenuto. Unison quindi copierà i nuovi file presenti nella seconda directory, creati dopo l’ultima sincronizzazione, nella prima directory, aggiornerà quelli preesistenti e cancellerà quelli che non esistono più.
Tra due macchine, utilizzando SOCKET
Supponendo invece che la directory di lavoro sia su una macchina diversa, che si chiama paci, potrei fare così: prima mi collego alla macchina remota e attivo il server Unison, utilizzando l’opzione -socket passandogli un numero arbitrario superiore a 1024:
lele@caia $ rlogin paci lele@paci $ unison -socket 180368
Poi da un altro terminale eseguo:
lele@caia $ cd /home/lele lele@caia /home/lele $ unison public_html/sito socket://paci:180368/sito_in_costruzione
Alla fine dovrò ricordarmi di spegnere il server, semplicemente interrompendolo con Control-C.
Tra due macchine, utilizzando SSH
Nel caso si abbia la possibilità di usare ssh, con il vantaggio di attuare un trasferimento dati protetto, basterà:
lele@paci $ unison public_html/sito_in_costruzione ssh://caia/public_html/sito
Come si può notare, in quest’ultimo caso ho eseguito il sincronismo partendo dalla macchina dove lavoro, paci: per unison non fa alcuna differenza!