Come eseguire il backup in modo efficiente (senza copiare file che non sono stati modificati)?


1

Eseguo regolarmente backup di file sul mio laptop utilizzando un disco rigido esterno. Uso una riga di comando di un sistema Linux (Ubuntu). Finora ho appena copiato tutto in una directory e ho rimosso il vecchio backup. Tuttavia, recentemente mi sono reso conto che è molto inefficiente dal momento che ci sono solo alcune modifiche (differenze) tra il nuovo stato della mia directory e quello precedente. In parole povere, non ho bisogno di copiare migliaia di file se ci sono solo 2 nuovi file e solo 3 vecchi file sono cambiati.

Quindi, mi chiedo come realizzare quanto segue:

  1. Confronta lo stato corrente della mia cartella e lo stato "vecchio" (quello di cui è stato eseguito il backup).
  2. Copia i nuovi file (quelli che si trovano nella cartella corrente ma non nel backup).
  3. Copia i file che sono stati aggiornati (i file la cui data di modifica è successiva all'ora dell'ultimo backup).
  4. Se un file non è più nella directory corrente ma è ancora nel backup, dovrebbe essere rimosso dalla cartella di backup.

Quindi, per riassumere, dopo l'operazione desiderata, il contenuto della cartella di backup dovrebbe essere identico al contenuto della cartella di cui voglio eseguire il backup. Come posso raggiungere questo obiettivo?


Uno dei tag è la risposta: utilizzare rsync per sincronizzare solo i file modificati. Se si desidera backup incrementali, consultare rsnapshot.
davidgo

Così si elimina la copia di backup dei file ... e si sovrascrive la copia di backup dei file modificati ... Si sa che non è più un backup, è solo un'immagine mirror più efficiente? Il punto più grande (IMO) di un backup è la possibilità di tornare indietro e vedere le vecchie versioni di & amp; file cancellati. Forse il titolo dovrebbe essere modificato, ho pensato che volevi anche un backup incrementale. (Grazie a @davidgo per averlo menzionato rsnapshot, interessante! Mi chiedo se possa essere combinato con lo squashfs in un solo passaggio)
Xen2050

Dubito che tu possa combinare lo squashfs con rsnapshot, non avrebbe molto senso. rsnapshot utilizza i collegamenti simbolici per creare più file tree mantenendo solo una copia di ciascun file, quindi è abbastanza efficiente. Se avessi bisogno di qualcosa di più efficiente avresti bisogno del dispositivo di blocco sottostante usando zfs o btrfs o qualche altro filesystem di cui non sono a conoscenza - o forse usi fusecompress.
davidgo

Risposte:


2

Con il comando rsync.

apt-get install rsync

L'uso del parametro -a fa ciò che hai delineato.

rync -a MyFiles MyBackup

Se vuoi vedere cosa farebbe rsync senza apportare modifiche nella destinazione, usa l'opzione -n ​​che significa corsa a secco.

rync -an MyFiles MyBackup

Inoltre ci sono front-end grafici per rsync come grsync


1
Cosa succede ai file che sono stati cancellati dalla fonte? -a li cancella dalla destinazione?
Xen2050

No, puoi aggiungere l'opzione --delete per farlo.
jdwolf
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.