Creare una copia a specchio di una directory in locale con rsync
Attenzione
Questo articolo è stato pubblicato più di un anno fa, potrebbero esserci stati sviluppi.
Ti preghiamo di tenerne conto.
Oggi parliamo di rsync: un programma a riga di comando che sincronizza una sorgente con una destinazione locale o remota. Nell’esempio di oggi sincronizzeremo due directory locali.
Di recente alla mia morosa ho proposto un backup delle sue foto. Ho migrato i miei dati in un server locale e nel disco esterno che usiamo per i backup sono rimasti solo i suoi vecchi dati. Lei mi propone di occuparmi del backup perché a suo dire non lo sa fare.
Aprendo il disco mi sembra che di recente non abbia mai messo in ordine i suoi file e ad esempio le foto benché siano catalogate correttamente, sono sparse tra diverse directory. Le più “popolate” sono Immagini
(75GB) e Foto
(188GB). Il sistema che ha adottato per catalogarle segue più o meno lo stesso criterio, ma ci sono dei doppioni in entrambe le directory per cui decido che si possano unire.
Ci sono diversi modi per farlo, ma il migliore secondo me è rsync
. Alternative più o meno valide possono essere unison
o il più comune cp
, ma non me ne occuperò in questo articolo.
Rsync è già installato su tutte le maggiori distribuzioni Linux e il suo funzionamento è molto classico. Di default non sovrascrive il contenuto, ma si limita a copiare i file non presenti nella destinazione.
~# rsync -avh --progress ./Immagini/ /mnt/4TB/Foto/
-a
sta per “archivio” e copia ricorsivamente tutto dalla sorgente alla destinazione preservandone tutte le caratteristiche (utente, permessi, ecc.)-v
da un output dettagliato e sta per “verbose”-h
forma l’output in modo che possa essere intelligibile e sta per “human readable”--progress
indica la quantità di lavoro svolto in percentuale
Per avere i file mancanti anche nella directory Immagini
non ci rimane che lanciare di nuovo il comando invertendo sorgente e destinazione.
~# rsync -avh --progress /mnt/4TB/Foto/ ./Immagini/
Nel mio caso mi interessava avere tutti i file in un’unica destinazione, quindi l’ho lanciato una sola volta, ma sto pensando a tutte le situazioni in cui sia importante la ridondanza dei dati e si renda necessario copiare gli stessi su diversi supporti o in diversi luoghi.
0 commenti