Sincronizzazione / backup unidirezionale con Unison


13

Sto usando lo strumento di sincronizzazione Unison con i miei computer Mac OSX e Ubuntu 9.10 per eseguire il backup della mia musica da Mac a Ubuntu. Il fatto è che voglio che il mio Mac sia la fonte e Ubuntu il bersaglio in modo che la macchina Ubuntu sia sempre una copia esatta della cartella Music sul Mac, ma se elimino qualcosa da Ubuntu, vincerà ' t vengono cancellati sul Mac. Ho esaminato i documenti, ma al momento è un po 'esagerato.

Risposte:


1

Uno strumento migliore per il lavoro potrebbe essere rsync (dovrai installarlo su entrambi i computer). Lo uso per mantenere sincronizzata la cartella musicale del mio laptop con un file server di casa, che è abbastanza simile alla tua situazione. rsync è specializzato nel mantenere aggiornata una copia speculare.

Una riga di comando come questa potrebbe essere utile (supponendo che tu la esegua da Ubuntu):

rsync -a --delete-before myMacMachineName:/MyMusic/ /mymusic/

È abbastanza facile cambiare la linea sopra se vuoi eseguirla dal tuo Mac e spingere sul computer Ubuntu invece di tirare.


33

Utilizzare unison -force:

Manuale:

Includendo la preferenza -force root, Unison risolve tutte le differenze (anche le modifiche non in conflitto) a favore di root. Ciò trasforma efficacemente Unison da un sincronizzatore a un'utilità di mirroring. Puoi anche specificare -force newer(o -force older) per forzare Unison a scegliere il file con il modtime successivo (precedente). In questo caso, anche la -timespreferenza deve essere abilitata. Questa preferenza viene ignorata dalla forcepartialpreferenza. Questa preferenza dovrebbe essere usata solo se sei sicuro di sapere cosa stai facendo!

Ad esempio (utilizzando la modalità socket). Avviare un listener all'unisono nella directory che si desidera essere un mirror di qualcos'altro. Indirizzare quel socket nella chiamata client all'unisono. La forza fa sì che le modifiche siano tutte UN SENSO dalla radice data.

cd /target/mirror/directory
unison -socket 123456 &

Altrove o sullo stesso host:

unison -silent -force /home/test/thing2 /home/test/thing2 socket://somehost:123456/

1
La sintassi per il file di profilo è specificare il percorso della directory principale per la variabile force. Vale a dire,force = /home/me/mysynchdir
Daniel

2

Mentre la risposta di TheToasterThatCould "funzionerà", tieni presente che non eseguirà correttamente il backup del file system Mac "Resource Forks"

Mentre la versione di rsync per Mac OSX è consapevole del fork delle risorse, le versioni di rsync per Linux non lo sono (e probabilmente non lo saranno mai, perché la versione di rsync per Apple è specifica per OSX e non presenta tali fork di risorse per rsync dall'altra parte un modo che può gestire una versione non-OSX di rsync). Il risultato di ciò è che i fork di risorse non verranno sincronizzati tra macchine Mac e Linux.

Alcune app Mac utilizzano fork di risorse per archiviare i dati relativi al file specifico. Se sei sicuro che i tuoi file che stai sincronizzando non necessitano o usano i fork di risorse, allora dovrebbe essere OK usare rsync.

Se si desidera sincronizzare le forcelle delle risorse, l'unisono sarà l'approccio migliore perché (secondo i documenti all'unisono) può sincronizzare le forcelle delle risorse.


0

FreeFileSync è un'applicazione open source in grado di eseguire il mirroring di una directory. Può funzionare per la sincronizzazione unidirezionale o bidirezionale o in modalità "contributo". Posso dire che può fare il lavoro di Microsoft Synctoy. FreeFileSync può essere utilizzato liberamente in Mac OS X, Linux e Windows.


-1

Attualmente unison /home/test/thing2 /home/test/thing2 socket://somehost:123456/ -silent -batchfunzionerà, dove -batchindica nessuna domanda

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.