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