Giocando con rsync

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

Lascia un commento

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