Capitolo 27.  Sincronizzazione dei file

Sommario

27.1. Software per la sincronizzazione dei dati disponibile
27.2. Fattori che influenzano la scelta del programma
27.3. Introduzione a Unison
27.4. Introduzione a CVS
27.5. Introduzione a Subversion
27.6. Introduzione a rsync
27.7. Introduzione a mailsync

Estratto

Oggi gli utenti utilizzano svariati computer: un computer a casa, uno o più computer a lavoro e, in alcuni casi, un portatile o un palmare (PDA) mentre sono in trasferta. Su questi computer vengono gestiti molti tipi di file. In alcuni casi può essere necessario lavorare su tutti questi computer contemporaneamente, modificare i file e verificare di aver a disposizione l'ultima versione aggiornata su tutti i computer.


27.1. Software per la sincronizzazione dei dati disponibile

Sincronizzare i dati su computer permanentemente collegati a una rete veloce è un'operazione semplice. In questo caso basta infatti usare un file system di rete, come NFS, e archiviare i file su un server in modo che tutti gli host possano accedervi tramite la rete. Questo approccio non è però possibile se la connessione di rete è inaffidabile o temporanea. Se si utilizza un portatile mentre si è in viaggio è possibile, ad esempio, copiare tutti i file richiesti sul disco rigido locale. Tuttavia, è necessario anche poter sincronizzare i file modificati. Quando si modifica un file su un computer, è necessario infatti verificare che il file venga aggiornato su tutti i computer. Se il numero di file è limitato, è possibile effettuare questa operazione manualmente con scp o rsync. Tuttavia, se il numero di file è elevato, la procedura può diventare molto complessa e occorre fare molta attenzione per evitare possibili errori come la sovrascrittura di un file esistente sulla nuova copia.

[Warning]Possibili perdite di dati

Prima di iniziare a gestire i dati con un sistema di sincronizzazione, è indispensabile aver acquisito familiarità con il programma e averne verificato le funzionalità. Inoltre, è importante anche effettuare una copia di backup dei file più importanti.

Per evitare la complessità e i possibili errori tipici della sincronizzazione manuale dei dati, è possibile usare uno dei numerosi programmi che offrono vari metodi per gestire automaticamente questa operazione. Le sezioni che seguono forniscono una descrizione generale del funzionamento di questi programmi nonché indicazioni su come utilizzarli. Prima di utilizzare qualunque programma, è indispensabile leggere la documentazione fornita con il programma stesso.

27.1.1. Unison

Unison non è un file system di rete, poiché i file vengono salvati e modificati localmente. Unison può però essere eseguito manualmente per sincronizzare i file. Quando si esegue l'operazione di sincronizzazione per la prima volta, viene creato un database su entrambi gli host. Questo database contiene i checksum, i contrassegni orari e le autorizzazioni relative ai file selezionati. Quando si esegue nuovamente la sincronizzazione, Unison individua i file modificati e suggerisce che vengano trasmessi da/all'altro host. Generalmente vengono accettati tutti i suggerimenti del programma.

27.1.2. CVS

CVS, generalmente usato per la gestione delle versioni sorgente dei programmi, consente di mantenere copie dei file su più computer, quindi è utile anche per sincronizzare i dati. CVS crea un archivio centrale sul server in cui vengono salvati sia i file che le modifiche apportate ai file. Le modifiche effettuate localmente vengono salvate nell'archivio in modo che possano essere recuperate da altri computer mediante una semplice operazione di aggiornamento. Entrambe le procedure devono essere avviate dall'utente.

CVS è in grado di rilevare eventuali errori anche nel caso in cui le modifiche vengano effettuate contemporaneamente su più computer. Le modifiche vengono unite e se si riferiscono alle stesse righe viene segnalato un conflitto. La segnalazione di un conflitto non ha alcun effetto sul database, poiché l'avviso viene visualizzato solo sull'host client in modo che possa essere risolto.

27.1.3. Subversion

A differenza di CVS, che è stato "aggiornato nel tempo" Subversion (SVN) è un progetto con caratteristiche progettuali ben definite. Subversion è stato sviluppato come una versione tecnicamente avanzata di CVS.

Subversion è stato migliorato sotto molti aspetti rispetto al programma precedente. CSV memorizzava solo le versioni cronologiche dei file, trascurando le directory. In Subversion anche le directory hanno una cronologia versioni, quindi possono essere copiate e rinominate al pari dei file. Inoltre, è possibile anche aggiungere metadati a ciascun file e a ciascuna directory. Questi metadati possono essere aggiornati insieme alle versioni. A differenza di CVS, Subversion supporta un accesso trasparente alla rete con protocolli dedicati come WebDAV (Web-based Distributed Authoring and Versioning). Questo protocollo amplia le funzionalità del protocollo HTTP consentendo a più utenti di accedere in lettura ai file sui server remoti.

Subversion è stato assemblato utilizzando principalmente pacchetti software esistenti. Quindi, il server Web di Apache e l'estensione WebDAV vengono sempre eseguiti insieme a Subversion.

27.1.4. mailsync

A differenza degli strumenti di sincronizzazione descritti in precedenza, mailsync può essere usato solo per sincronizzare i messaggi e-mail tra le caselle di posta. La procedura può essere effettuata sia sui file delle caselle di posta locali che su quelle ubicate su server IMAP.

I singoli messaggi vengono sincronizzati o eliminati in base all'ID messaggio contenuto nell'intestazione del messaggio e-mail. L'operazione di sincronizzazione può essere effettuate sia tra caselle di posta singole che tra gerarchie di caselle di posta.

27.1.5. rsync

Lo strumento rsync può essere usato nei casi in cui è necessario sincronizzare strutture di directory di ampie dimensioni su connessioni di rete lente senza effettuare controlli, poiché consente di trasmettere solo le modifiche apportate ai file. Lo strumento può essere usato sia per i file di testo che per quelli binari. Per individuare le differenze, rsync divide i file in blocchi e calcola i checksum.

Tuttavia l'operazione di rilevamento delle differenze ha un costo, perché è necessario scalare generosamente ii sistemi per poter usare rsync. La RAM ha un ruolo molto importante.

27.1.6. Novell iFolder

Novell iFolder consente l'accesso ai file da qualsiasi ubicazione e in qualunque momento. Tutti i file inseriti nella directory di iFolder vengono immediatamente sincronizzati con il server. Questo metodo offre il vantaggio di consentire all'utente di poter lavorare dovunque.

Novell iFolder consente anche di lavorare offline. Questa funzione può essere molto utile se non si dispone di una connessione a Internet, e se si utilizza il computer portatile mentre si è in trasferta, perché permette di trasmettere automaticamente le modifiche dei file al server al momento stesso in cui ci si collega a Internet.

Per usare iFolder sono sufficienti tre operazioni:

  1. Accedere al sistema prima di usare iFolder.

  2. Modificare le preferenze relative alla frequenza di sincronizzazione.

  3. Sincronizzare i file e visualizzare l'attività tra il client e il server iFolder.

  4. Risolvere eventuali conflitti di sincronizzazione. I conflitti possono verificarsi se si modifica lo stesso file su due computer diversi. iFolder salva i file che hanno generato un conflitto in una directory a parte per prevenire eventuali perdite di dati.

Per ulteriori informazioni su iFolder, vedere http://www.novell.com/en-en/documentation/. Per suggerimenti e consigli pratici sull'uso di iFolder, visitare la pagina Web http://www.novell.com/coolsolutions/ifmag/.