Il backup incrementale di rsync
Tra i software di backup quello che in modo particolare mi ha colpito per funzionalità e leggerezza è Rsync.
Gestibile da linea di comando Rsync permette il backup di ogni tipo di file, per render il processo di backup veloce si sfrutta una tecnica detta di “backup incrementale” la quale va a copiare le sole parti cambiate di un file già archiviato risparmiando quindi tempo e risorse macchina rispetto ad un tool che ogni volta che effettua il backup di un file ne copia nuovamente tutto in contenuto.
Rsync è incluso nelle maggiori distribuzioni ed a volte per l’installazione è sufficiente rifarsi al gestore dei pacchetti o al cd/dvd della distro in questione.
Il programma gestisce anche la copia dei file su di un host, pratica che effettua grazie al supporto di connessione di tipo ssh o rsh è possibile anche effettuare la connessione ad un host grazie al demone del software se presente nel sistema operativo della controparte ma si ricorre quasi sempre a connessioni di tipo ssh per la loro sicurezza e facilità di gestione.
La sintassi del software è molto semplice ed è così strutturata:
1 | rsync [opzioni] sorgente destinazione |
se ad esempio desideriamo copiare la cartella home all’interno di un supporto di memorizzazione USB ricorreremo al seguente comando:
1 | rsync -a /home/user/dir/ /media/disk/dir/ |
E’ importantissimo distinguere queste due diciture:
1 | /home/user/dir/” …………………….. “/home/usr/dir |
nel primo caso il software prenderà la cartella e la copierà per intero mentre nel secondo caso il software copierà il contenuto della cartella all’interno del supporto che noi avremo designato senza però creare la cartella che contiene i file; occhi dunque alle slash.
L’opzione -a che può seguire il comando Rsync serve a preservare i diritti sui file che quindi avranno ancora un “padrone” ed un “gruppo di appartenenza”, è importante specificare che non verranno preservati di hardlink se volete ottenere questo dovete affidarvi al flag -H.
Potete escludere i file nascosti dai vostri backup grazie alla sintassi:
1 | –exclude=”.*/” |
CREARE DELLE COPIE LOCALI
La sintassi più comune per creare dei backup locali all’interno di dischi USB o comunque esterni è la seguente:
1 | rsync -avh /home/usr/dir/ /media/disk/backup/ |
volendo si può ricorrere ad una opzione che permette di cancellare i file locali, in tale modo il comando sarà:
1 | rsync -avh –delete /home/user/dir/ /media/disk/backup |
attenzione ad usare la funzione –delete se vi accorgete di un errore potrete sempre fermare il processo con la combinazione ctrl+c.
CREARE COPIE REMOTE
Se avete a disposizione uno spazio remoto su di un server potete sfruttarne la capienza per creare delle copie remote dei vostri file grazie al semplice comando:
1 | rsync -avhe ssh –delete /home/user/dir/ user@remote.host.com:dir/ |
per rendere il tutto più graficamente accattivante potete introdurre il flag –progress in questo modo:
1 | rsync –progress -avhe ssh –delete /home/user/dir/ user@remote.host.com:dir/ |
Se siete particolarmente sospettosi o maniaci della sicurezza o semplicemente state effettuando il trasferimento di dati importanti e riservati potete dotare la connessione ssh di passord in questo modo, create una chiave sh con questo comando:
1 | ssh-keygen -t dsa |
una volta premuto invio inserite la vostra password.
Una volta creata la password date il seguente comando:
1 | ssh-copy-id -i .ssh/id_dsa.pub user@remote.host.com |
che farà in modo di copiare la chiave pubblica in remoto.
Se desiderate ora riprendere i vostri file dallo spazio web dove li avete salvati dovete dare un comando come questo:
1 | rsync -avze ssh remote.host.com:/home/user/dir/ /local/path/ |
In definitiva Rsync è uno strumento poente per coloro che hanno necessità di grandi backup, come gli amministratori di reti o server, ma anche per il normale utente che cerca un modo sicuro, facile e veloce per creare copie di backup delle proprio foto delle vacanze.
Ciao a tutti.
P.S.: dimenticavo che Rsync può essere completamente automatizzato grazie al prezioso aiuo dello shell scripting.




















