Come archiviare automaticamente una directory?


47

Voglio fare la sincronizzazione in un modo.

Sto avendo Folder Asul mio computer che viene costantemente aggiornato con il contenuto.
Un altro Folder Bviene utilizzato a scopo di backup su HDD esterno.

Ora quello che mi aspetto è che qualsiasi extra presente nella cartella A dovrebbe andare nella cartella B. Tuttavia qualcosa che è presente in B e NON in "" NON deve essere copiato in A "".

In poche parole, la cartella di backup può copiare tutto dalla cartella di origine, tuttavia nulla deve essere copiato dalla cartella di backup all'origine.


Questa non è sincronizzazione ....
Braiam,

@Braiam come si chiama allora? Non sono riuscito a trovare una parola come il PO. Se lo sai, per favore dillo.
Jo Smo,

@JoSmo copy? Archivio? Backup?
Braiam,

@Braiam grazie, ora mi sento stupido per averlo chiesto. : D
Jo Smo,

Risposte:


63

Sembra un compito perfetto per rsync

sudo rsync -az /path_to/A /path_to/B

-una modalità di archiviazione (implica ricorsivo, copia dei collegamenti simbolici come collegamenti simbolici, conservazione del proprietario, tempi di modifica, gruppo, proprietario, file speciali e del dispositivo)

-z comprime i dati

Se si desidera rimuovere i file eliminati in A dai file in B, utilizzare l' --deleteopzione

Per ulteriori informazioni consultare:

https://help.ubuntu.com/community/rsync

Puoi eseguire rsync da cron

sudo crontab -e

Aggiungi un'attività oraria

@hourly rsync /path_to/A /path_to/B

https://help.ubuntu.com/community/CronHowto


7
Se ci sono cartelle all'interno delle cartelle, dovrai usare l'opzione -r.
John S Gruber,

2
Sono un po 'in ritardo alla festa, ma per eseguire lo script di sincronizzazione quando il disco rigido è collegato dovresti usare udev. Dai un'occhiata a questa domanda di qualche tempo fa. askubuntu.com/questions/25071/…
jackweirdy

1
@JohnSGruber l'opzione -a implica ricorsivo, modificherò la risposta per sottolinearlo
Tomas,

1
se i file si trovano sulla stessa macchina -zrallentano il processo
Postadelmaga

1
@JoSmo - askubuntu.com/questions/476041/… e askubuntu.com/questions/609968/… e man rsync e fai una nuova domanda, se necessario, piuttosto che fare commenti.
Pantera

15

Suggerirei di usare rsync per questo scopo. Rsync è estremamente veloce, stabile e versatile. C'è una buona introduzione su http://help.ubuntu.com/community/rsync

Se lo desideri, è disponibile un front-end grafico opzionale: grsync

 sudo rsync -azv --exclude 'dir1' /home/path/folderA/ /home/path/folderB

Il comando sopra verrà copiato dalla cartella A alla cartella B escluso dir1. Le bandiere sono

-a preserves time stamps
-z is to enable compression
-v verbose

Ci sono molte altre opzioni disponibili.


8

Ho sempre trovato Unison molto utile. Ha un'interfaccia basata su testo o basata su GUI e diverse opzioni per modificarlo come desiderato (con un po 'di confusione). Ci vuole un po 'di tempo per fare la prima sincronizzazione, ma dopo è geniale. Puoi farlo sincronizzare a senso unico, come vuoi, ma lo otterrà praticamente automaticamente. Può anche eliminare dal backup o meno come si sceglie.

Potresti anche riscontrare problemi con le autorizzazioni supportate nel formato file Ubuntu, ma forse non nel disco rigido esterno (a seconda che il disco rigido esterno verrà utilizzato in un computer Windows, questa potrebbe essere una buona cosa), quindi ti consigliamo di sincronizzare potenzialmente senza le autorizzazioni.

Comunque, la cosa bella è che con il tutorial è relativamente semplice configurarlo una volta, e da allora in poi è un'interfaccia GUI ogni volta che vuoi farlo.

Ecco alcune informazioni al riguardo: http://www.ubuntugeek.com/unison-file-synchronization-tool.html

Ed ecco il tutorial: http://www.cis.upenn.edu/~bcpierce/unison/download/releases/stable/unison-manual.html#tutorial


4
rsync -avPr --ignore-existing /home/username/Research/ /path/to/other/folder/on/hdd/

Questo sincronizzerà e copierà solo quei dati che non esistono in /other/folder/on/hdd/


2

Sono d'accordo con le altre risposte, è possibile utilizzare in rsync in Terminal o le interfacce Grsync , luckyBackup , Conduit o il famoso Unison .

Un'altra fantastica app è Krusader (un File Manager a doppio pannello per KDE), nel menu Strumenti puoi trovare "Syncronize Directories", è molto utile.

Nell'ultima istanza è possibile installare Wine e installare un altro ottimo file manager a doppio pannello come Total Commander .

Ad ogni modo hai un sacco di opzioni e tutte sono presenti in Ubuntu Software Center.


1

Consiglierei Conduit per una semplice sincronizzazione. È disponibile il sistema software. Fa esattamente quello che stai cercando


0

Esiste uno strumento di shell abbastanza utile chiamato rsnapshot - http://www.rsnapshot.org/ - utility snapshot del filesystem per eseguire backup di sistemi locali e remoti. che utilizza rsync e collegamenti reali che consentono di mantenere immediatamente disponibili backup multipli e completi del file system. Basta fare sudo apt-get install rsnapshote controllareinfo rsnapshot


0

Puoi sincronizzare i file all'interno di due directory:

rsync -rv /path/to/directory1/ /path/to/directory2

Fare rsync -rv /path/to/directory1 /path/to/directory2creerà directory1dentro directory2, in questo modo/path/to/directory2/directory1/[files]

Puoi eseguire la corsa a secco usando -nswitch, in questo modorsync -rnv /path/to/directory1/ /path/to/directory2

Riferimento: https://www.digitalocean.com/community/tutorials/how-to-use-rsync-to-sync-local-and-remote-directories-on-a-vps


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.