Chapter 24. Sincronizzazione dei file

Table of Contents

24.1. Software per la sincronizzazione dei dati
24.2. Criteri per scegliere il programma giusto
24.3. Introduzione ad unison
24.4. Introduzione a CVS
24.5. Un 'introduzione a subversion
24.6. Un'introduzione a rsync
24.7. Introduzione a mailsync

Abstract

Oggi sono in tanti a utilizzare e a lavorare con più di un computer. Spesso se ne ha uno a casa, uno o più di uno al lavoro ed eventualmente anche un portatile o PDA che viene utilizzato durante gli spostamenti. Molti file dovranno essere disponibili su tutti quanti i computer con i quali si lavora per poterli elaborare, e chiaramente tutti i dati dovranno essere disponibili nella versione attuale su ogni sistema.

24.1. Software per la sincronizzazione dei dati

Nel caso di computer che compongono i singoli nodi di una rete veloce, la sincronizzazione dei dati non rappresenta un problema. Basta selezionare un file system di rete, per esempio NFS e salvare i file su un server. I vari computer accederanno in seguito tramite la rete agli stessi e identici dati deposti sul server.

Questo approccio diventa improponibile nel caso di una rete molto lenta o addirittura incompleta. Chi usa un laptop durante i suoi spostamenti necessità delle copie dei file da elaborare sul proprio disco rigido locale. Non appena però si inizia ad modificare i file si presenta il problema della sincronizzazione. Se si modifica un file su un computer si deve badare assolutamente ad aggiornare la copia del file su tutti gli altri computer. Se si tratta di un fatto sporadico questo si lascia realizzare comodamente a mano con i comandi scp o rsync. Nel caso di numerosi file il tutto diventa giàpo' più laborioso e richiede molta attenzione per evitare che si sovrascriva per esempio un file nuovo con la versione antecedente.

[Warning]Occhio alla perdita di dati

In ogni caso bisogna sapere usare bene il programma utilizzato e testare le sue funzionalità prima di amministrare i propri dati tramite un sistema di sincronizzazione. La copia di sicurezza è ed resta irrinunciabile per file importanti.

Per risparmiarsi queste procedure laboriose che richiedono tanto tempo prezioso e sono esposte ad errori vi è del software che seguendo approcci diversi automatizza questo processo. La seguente breve introduzione intende solamente dare all'utente un'idea del modo di funzionare di questi programmi e di come adoperarli. Prima di utilizzarli effettivamente consigliamo di leggere attentamente la documentazione relativa.

24.1.1. unison

unison non è un file system di rete. I file vengono editati e salvati in locale. Si può richiamare il programma manualmente per sincronizzare i file. La prima volta che si esegue il processo di sincronizzazione viene creata una banca dati su entrambi i sistemi coinvolti nella quale vengono memorizzate le somme di controllo, la data e i permessi dei file selezionati.

Alla prossima chiamata, unison è in grado di riconoscere quali file hanno subito delle modifiche e propone la trasmissione da un sistema all'altro. Solitamente potrete accettare tranquillamente le proposte di unison.

24.1.2. CVS

Impiegato soprattutto per l'amministrazione delle varie versioni dei sorgenti di programmi, il CVS consente di avere delle copie dei file su diversi computer. In questo senso è adattato anche al nostro scopo.

Il CVS ha un database centrale chiamato repository, che risiede sul server, ed il quale memorizza non solo i file ma anche le singole modifiche apportate ai file. Quando le modifiche eseguite in locale vengono immesse nel database, si parla di commit, le quali potranno essere scaricate dagli altri computer (update). Entrambi i processi vengono eseguiti dall'utente.

Inoltre CVS è tollerante nei confronti di errori per quanto riguarda le modifiche effettuate da diversi computer: le modifiche vengono raccolte e solo se vi sono delle modifiche che interessano la stessa riga di un documento o file sorge un conflitto. Il database in caso di un conflitto resta comunque in uno stato consistente; il conflitto è visibile solo sul client e solamente da lì risolvibile.

24.1.3. subversion

subversion è stato concepito per sostituire CVS.

subversion presenta una serie di migliorie rispetto al suo predecessore. CVS è in grado di amministrare solo file e“ignora” le directory. subversion invece offre uno storico anche delle directory che potranno essere copiate e rinominate alla stregua di file. Inoltre, è possibile aggiungere per ogni file e directory dei metadati relativi ad una determinata versione del file o directory. A differenza di CVS, subversion consente un accesso di rete transparente grazie a dei propri protocolli come ad esempio WebDAV.

subversion è stato realizzato in prima linea ricorrendo a pacchetti programmi esistenti. subversion utilizza il server web apache con l'estensione WebDAV.

24.1.4. mailsync

A differenza dei tool di sincronizzazione finora menzionati, Mailsync è atto solo alla sincronizzazione delle e-mail di caselle diverse. Si può trattare sia di e-mail nella mail box locale che di mail box che risiedono su un server IMAP.

Per ogni messaggio viene deciso sulla base del message id, contenuto nell'intestazione della e-mail, se cancellarla o sincronizzarla. E' possibile sincronizzare sia singole mail box che gerarchie di mail box.

24.1.5. rsync

Se non vi occorre un'applicazione per il controllo di versione e intendete sincronizzare vasti alberi di file tramite connessioni di rete lente, potete ricorrere al tool rsync. rsync dispone di meccanismi particolari che permettono di trasmettere solo le modifiche apportate ai file, siano essi di file di testo oppure dei file binari. Per rilevare le differenze tra i file rsync suddivide i file in blocchi e ne calcola la somma di controllo.

Però il rilevamento delle modifiche ha il suo prezzo. rsync richiede tra l'altro tanta RAM.