[Linuxtrent] Re: micro-script di backup con rsync

  • From: "Vincenzo D'Andrea" <vincenzo.dandrea@xxxxxxxxx>
  • To: linuxtrent@xxxxxxxxxxxxx
  • Date: Thu, 11 Dec 2008 12:46:07 +0100

On Thu, Dec 11, 2008 at 11:32 AM, Emanuele Olivetti
<emanuele@xxxxxxxxxxxxxx> wrote:
>>  Invece non capisco come mai usi quel meccanismo "manuale" della
>>  directory "last" che poi rimuovi. Non puoi semplicemente usare
>>  l'opzione --backup ?
>>  Tra l'altro se vuoi puoi anche specificare una directory diversa, un
>>  po' come fai già per --partial.
>>
>
> L'idea e' quella di avere tanti snapshot consistenti, differenziati
> dalla data. Se eseguo lo script in giorni diversi ottengo una
> directory per ognuno dei giorni e ciascuna comprende _tutti e soli_ i
> file presenti in quel giorno sul mio portatile. Esempio:
> 2008-12-10/
> 2008-12-11/

ok - non è una cattiva idea in effetti.

> Siccome solo pochi file cambiano tra un backup e l'altro allora cerco
> di ridurre al minimo le duplicazioni dei file che non sono cambiati
> (per esempio tra 2008-12-10/ e 2008-12-11/) una utilizzando il
> meccanismo degli hard link. Ovvero, di base ogni nuovo backup
> (es. 2008-12-11/) e' semplicemente una copia completa del backup
> precedente (es. 200-12-10/) ma fatta solo tramite hard links
> (--link-dest=..../last); rsync poi calcola le differenze tra questa
> nuova copia e lo stato del mio portatile e aggiorna solo quello che e'
> cambiato. Nel mio caso tengo nel backup circa 20 mila file per un
> totale di 4.2Gb (es. in 2008-12-10/). Una copia di tutto l'albero
> tramite hard links occupa solo ~500K (es. 2008-12-11/). Su questa
> rsync aggiunge le modifiche quotidiane (massimo qualche Mb). Da un
> punto di vista logico 2008-12-11/ contiene tutti i file di oggi del
> mio portatile, ma da un punto di vista fisico, sono quasi tutti hard
> link a file in backup di giorni precedenti, quindi lo spazio non e'
> sprecato.

La man page di rsync dice:

 -H, --hard-links
This tells rsync to look for hard-linked files in the transfer and
link  together  the  corresponding  files on the receiving side.
Without this option, hard-linked files in the transfer are treated as
though they were separate files.
Note that rsync can only detect hard links if both parts of the link
are in the list of  files being sent.

Avevo interpretato che l'opzione -H servisse a modificare il
comportamento dei file che sono hard link sul lato source, non su
quello destination.
Se funziona come dici, allora la cosa è interessante.

> Da quello che ho capito invece il meccanismo di funzionamento di
> "--backup" e "--backup-dir=..../backupdir" e' differente. Li' vengono
> messe le copie vecchie dei file che sono cambiati. Ma questo non vuol
> dire (correggetemi se sbaglio) che backupdir/ contiene uno snapshot
> consistente del mio filesystem ad una certa data. E' solo una
> collezione dei diff nel tempo. Se volessi ripristinare la situazione
> precedente all'ultimo backup dovrei decidere a mano cosa prendere e
> cosa non prendere. Il che e' laborioso e magari insolubile in certi
> casi.

Nel mio caso non è esattamente un diff, ma sono la ultima e la
penultima versione. Un po' come dici tu, ma su scala ridotta.
Per esempio, questo è il contenuto di una delle dir sul lato backup:

user@host:/dir/backup/Thunderbird/Mail/localhost$ ls -al In*
-rwxr-xr-x 1 dandrea dandrea 133011434 2008-12-11 03:07 Inbox
-rwxr-xr-x 1 dandrea dandrea 116173509 2008-12-08 05:39 Inbox~
-rwxr-xr-x 1 dandrea dandrea    354732 2008-12-11 03:07 Inbox.msf
-rwxr-xr-x 1 dandrea dandrea    471101 2008-12-08 05:40 Inbox.msf~
user@host:/dir/backup/Thunderbird/Mail/localhost$

si, dalle date è evidente che non lo faccio tutti i giorni :-(
Ma in ogni caso la dimensione non quella del diff!
Ho verificato per scrupolo guardando anche i file.

>>  Per il resto tutto uguale a parte la compressione di -z che non avevo
>>  notato ci fosse. Grazie per il suggerimento, a volte con connessioni
>>  lente è una vera pena!
>
> Puoi aumentare il livello di compressione per guadagnare banda:
> --compress-level=9 . Qualche volta aiuta davvero. Io lo uso.
> In alternativa si puo' usare la compressione di ssh: -e "ssh -C"
> Ma non mi e' chiaro come impostare al volo il livello di compressione
> come invece si fa con -z e --compress-level=9.

ottimo - grazie.

ciao
v.
--
Per iscriversi  (o disiscriversi), basta spedire un  messaggio con OGGETTO
"subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx


Other related posts: