Cookie

Creare una copia a specchio di una directory in locale con rsync

Pubblicato da TheJoe il

Tempo di lettura stimato: 2 minuti

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

Guarda qui:  6 strumenti indispensabili per rendere sicuro il tuo server Linux

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.


TheJoe

Mantengo questo blog a livello amatoriale dal 2009. Sono appassionato di grafica, tecnologia, software Open Source. Fra i miei articoli non sarà difficile trovarne circa la musica, ed alcuni di riflessioni personali, ma preferisco indirizzare la linea del blog principalmente verso la tecnologia. Per informazioni contattami.

0 commenti

Lascia un commento

Segnaposto per l'avatar

Il tuo indirizzo email non sarà pubblicato. I campi obbligatori sono contrassegnati *

Questo sito usa Akismet per ridurre lo spam. Scopri come i tuoi dati vengono elaborati.