Rsync è un ottimo strumento per fare i backup , al tempo mi ero fatto uno script semplice da usare per backuppare sul mac le cartelle degli utenti su un disco esterno. Funziona così bene che mi sono scordato come l’ho fatto
.
Per Linux il discorso non cambia, poco tempo fa è comparso questo articolo che spiega qualcosa su rsync .
Peccato che non parli dell’opzione --exclude-from .
In questi giorni stavo usando Grsync (ne ho parlato qui dove ho anche corretto una fesseria che avevo scritto ) , il problema che mi presente oggi e quella di escludere alcune cartelle che non mi interessa salvare , una su tutte la cartella con le macchine e dischi di VirtualBox.
La pigrizia ed il caldo mi avevano fatto scordare che avevo utilizzato un’opzione simile sullo script del Mac e quindi l’ho recuperato.
Illuminazione! L’opzione --exclude-from=[file] permette di escludere file o cartelle , in modo da evitare di salvare cose inutili, il fatto che quello script funzioni è stato grazie a questa guida (che riguarda il backup di un mac , ma i concetti sono li stessi).
Il file da creare è un semplice file di testo che contiene tutto quello da escludere, il funzionamento è praticamente lo stesso di tar.
Bisogna solo ricordarsi che nell’indicare i percorsi la / non è quella del disco , ma la cartella che di partenza.
Esempio mettiamo che io non voglia salvare la cartella /home/bob/cartellainutle e abbia indicato a rsync di partire da /home/bob/ nel mio exclude dovrei mettere /cartellainutile. Mettiamo che non voglia salvare i file che finiscono con .wma basta inserire *.wma nel file.
Ecco un esempio del mio file exclude.txt nel backup che parte dalla mia home (/home/bob)
./VirtualBox/Music
Il vantaggio di usare un file di questo tipo è che per ogni cosa che non volete salvare basta aggiungerla al file, nel mio caso basta aggiungere l’opzione --exclude-from=/home/bob/backup/exclude.txt.
L’opzione si può anche usare in Grsync (infatti nel post in cui nei parlo ho corretto l’errore) , basta inserirla nelle opzioni avanzate.
Esiste anche l’opzione --include-from , che invece che escludere , indica cosa includere.
Se usate Grsync è possibile anche vedere una simulazione delle operazioni, se usate rsync da riga di comando usate l’opzione --dry-run.