Tutorials

  • Presto on-line...

About ...

  • ... questo sito
  • ... me


Backup remoto, veloce e sicuro

rsync, ssh
Se stai cercando un sistema per fare una copia di backup dei dati che risiedono su una macchina remota (ma può essere anche una macchina locale!), c'è un sistema veloce e sicuro: rsync. Si può automatizzare, può utilizzare ssh per criptare l'eventuale comunicazione, può copiare solo i file modificati... e molto altro.

Supponiamo che:

user1 vuole fare un backup della sua cartella "Documents" dalla sua macchina host1 alla sua macchina host2.

Soluzione:

rsync permette di sincronizzare files e directory localmente (sulla stessa macchina) o su macchine remote collegate in rete. E’ veloce ed efficiente, e copia solamente i file che sono stati modificati.

Sintassi:
rsync   opzioni   sorgente   destinazione

Cominciamo a vedere le opzioni più interessanti:

-a
I files vengono trasferiti in modalità "archivio" per assicurare che vengano mantenuti i symbolic links, i devices, gli attributi, i permessi, owner e group e che le directory vengano copiate compreso il loro contenuto.

-e ssh
impone l’utilizzo di una connessione sicura per l’eventuale accesso remoto

--stats
stampa alcune informazioni statistiche sull’esito dell’operazione di copia

--delete
cancella nel path di "destinazione" quei files che non sono più presenti nel path "sorgente"

I path sorgente e destinazione possono essere indicati in almeno due modi.

path
indica un percorso locale

host:path
indica un percorso remoto

Alcuni esempi:

rsync *.c host2:/src/
copia tutti i files che terminano per ".c" dalla directory corrente alla directory /src presente nella macchina host2. Naturalmente rsync utilizza un particolare algoritmo per capire se un file è già presente nel percorso di destinazione, così vengono copiati solamente i files diversi o mancanti.

rsync -a host2:/src/bar /data/tmp
vengono ricorsivamente copiati tutti i files dalla directory /src/bar (della macchina host2) alla directory locale /data/tmp/bar.

Attenzione al prossimo esempio:
rsync -a host2:/src/bar/ /data/tmp
lo slash "/" finale nel path sorgente (/src/bar/) cambia il comportamento precedente copiano i files contenuti nella directory host2:/src/bar/ dentro al percorso locale /data/tmp/.

In altre parole:

  • Uno / finale nel percorso sorgente significa: "copia il contenuto di questa directory".
  • Senza lo / finale nel percorso sorgente voglio dire: "copia la directory (ed il suo contenuto)".

ssh:

Ho precedentemente accennato alla possibilità di usare l’opzione -e ssh che obbliga l’utilizzo di una particolare shell remota (nel nostro caso la classica ssh)… Le cose si fanno molto interessanti (e utili) perchè se si ha configurato ssh per connettersi senza richiedere la password diventa possibile utilizzare il comando rsynk in uno script automatico che (per esempio) ogni notte copia una directory da una macchina ad un’altra senza l’intervento manuale.

ATTENZIONE a quello che stiamo copiando:

MacOS X utilizza un File System chiamato HFS+ che porta notevoli vantaggi all’utente ma che utilizza alcune informazioni (resource forks e HFS meta-data) non sempre correttamente gestite dalle più comuni utilities unix… ed è anche il caso di rsync.
In particolare se si tenta di fare il backup del disco intero o delle applicazioni utente, si rischia di ottenere una copia non perfettamente uguale all’originale e in alcuni casi (tipicamente alcune applicazioni) non funzionanti.
Se si deve fare una copia tenendo conto anche di queste particolarità allora occorre utilizzare altri sistemi come l’ormai famoso rsyncX.

Per approfondimenti:

Consiglio innanzitutto di guardare il manuale in linea, completo e ricco di esempi:

  • man rsync

Il sito ufficiale di rsync:

... e quello di rsyncX:

Un tutrial completo e ben fatto:

Posted on Apr 22, 2003 - 07:24 PM


Ricerca:


Adv:

ApplePro :
Vuoi acquistare un prodotto dalla Apple? Sei un utente Pro (cioè hai la partita IVA)? Se vuoi supportare il nostro sito, passa da qui: apple pro.