Dopo aver, per anni, fatto i miei backup tra i vari hard disk con il comando cp
(e l’opzione -u
per “risparmiare tempo” e sentirmi fico :cool:), mi sono deciso oggi a fare qualche esperimento con rsync
, tool a linea di comando* per la copia di file tra due cartelle (locali o remote, per ora lo uso solo in locale).
La sintassi è semplice: rsync [OPTIONS] SRC DEST
.
Devo dire che è estremamente comodo, soprattutto l’opzione --delete
, che permette di cancellare i file nella destinazione quando non sono più presenti nella sorgente, facendo così una vera e propria sincronizzazione tra le due cartelle. Attualmente lo sto testando con le opzioni:
-r
ricorsivo-u
ignora i file che sono più recenti nella sorgente (in teoria inutile in caso di backup)-p
mantiene i permessi (dovrebbe essere inutile in caso di backup su filesystem NTFS)-t
mantiene il timestamp di modifica--progress
mostra il progresso della sincronizzazione--delete
cancella i file nella destinazione quando non esistono più nella sorgente--safe-links
ignora i link che puntano fuori la sorgente (utile perché sto facendo il backup di varie partizioni e non voglio copie risorsive)--exclude "cartelle"
permette di escludere cartelle dalla copia in base al nome (io lo uso per tutte le cartelle.svn
)
Una cosa che mi ha dato problemi è l’uso dello slash alla fine dei percorsi sorgente. In base alla sua presenza o meno il programma si comporta in modo diverso (nel caso in cui SRC sia una cartella):
SRC/
: copia solo il contenuto (ricorsivamente se indicato nelle opzioni)SRC
: copia la cartella e il contenuto (ricorsivamente se indicato nelle opzioni)
*per i più bisognosi, esiste una GUI per gestirlo meglio