Utilizzo rsync per i backup spesso e volentieri, è veloce e preciso e mi aggiorna solo ciò che è variato e non sta a ricopiare tutto. Vediamo un po’ alcuni modi di utilizzarloPrima vediamo un esempio semplicissimo.Abbiamo due directory /Music e /Music_backup
Su /Music capita che aggiungiamo canzoni, cancelliamo, variamo i tag etc etc

Con rsync ci basterà fare :
$ rsync -av –delete /Music/   /Music_backup/

Con l’opzione -v vedremo quello che sta copiando o cancellando
L’opzione -a invece mantiene i permessi, è recursiva, copia i link etc etc insomma comprende tutto
Importante è il discorso delle “/”
Mettendo la / nel percorso sorgente verrà copiato il contenuto della directory in questione, senza / verrà copiata anche la directory
Esempio se mettiamo come sorgente /Music/ il risultato all’interno di /Music_backup sarà /Music_backup/Rock  /Music_backup/Classica etc etc
Se invece mettiamo come sorgente /Music senza la barra il risultato all’interno di /Music_backup sarà /Music_backup/Music/Rock  /Music_backup/Music/Classica etc etc ripartendo quindi dalla directory Music compresa.
E se volessimo escludere qualcosa ?
Potete usare il parametro –exclude=

Se per esempio volessimo copiare la nostra intera distro su un hd portatile una volta avviato il tutto con una distro live tipo Knoppix potremmo dare il comando da /
$ rsync -av –exclude=/media/sda1/sys –exclude=/media/sda1/swap –exclude=/media/sda1/proc –exclude=/media/sda1/tmp –exclude=/media/sda1/dev   /media/sda1/ /media/sdb3/ubuntu_backup/
Dove /media/sda1 è il nostro disco fisso di sistema
Nel caso abbiate più partizioni si consiglia di non montarle e poi fare un rsync apposito, questo per evitare di copiarle due volte.
rsync con esclusioni e inclusioni indicate in un file
Volendo potete inserire le vostre esclusioni e inclusioni di backup in un file.
Perchè ho parlato di inclusioni ?
Perchè per esempio durante il backup completo normalmente si exclude /dev ma si potrebbero includere dei file all’interno di /dev
Esempio :
Create con nano vim gedit o altro il file include_exclude.lst e poi al suo interno andate inserire le seguenti righe

#  esclusioni
– /dev/*
– /proc/*
– /sys/*

e così via

#  inclusioni

+ /dev/console
+ /dev/initctl
+ /dev/null
+ /dev/zeroetc etc etc

Ora nel nostro comando rsync andremo a richiamare questo file con l’opzione –exclude-from e quindi metteremo
–exclude-from=include_exclude.lst
Naturalmente con il corretto percorso
Se vogliamo che i file esclusi vengano cancellati dalla destinazione aggiungiamo anche l’opzione –delete-excluded

Per ultimo se vogliamo vedere per ogni file la percentuale di avanzamento della copia mettiamo anche l’opzione : –progress