Come sincronizzare file / dati tra due PC su una rete domestica?


11

Ho un desktop e un laptop con quasi gli stessi file nella loro directory home. A volte apporto modifiche a ~/Music, ~/Documentsecc. Ma questi cambiamenti ovviamente non influiscono sull'altra macchina.

Quindi voglio avere una soluzione per sincronizzare tutti i dati nelle cartelle home del mio laptop e desktop. Di tanto in tanto posso collegarli con un cavo incrociato.

Non voglio usare Ubuntu One o Dropbox (i file sono grandi e non è necessario usare Internet quando entrambi sono su una rete domestica).


Dropbox offre anche la sincronizzazione della rete, quindi forse non è necessariamente lo strumento sbagliato.
turbo

Risposte:


8

Per un piccolo set di file suggerirei Dropbox o Ubuntu One , ma sembra che tu voglia sincronizzare la tua raccolta musicale tra computer, e nessuno dei due è particolarmente adatto per questo per due motivi:

  • Entrambi si sincronizzano con Internet, il che significa che grandi raccolte di file impiegheranno molto tempo a scaricarsi e caricarsi
  • Offrono uno spazio limitato (con la possibilità di acquistare di più), il che significa che per una grande raccolta di file potresti dover sborsare un sacco di soldi

Unison , che è quello che uso per la replica locale, non presenta nessuna di queste limitazioni (intrinsecamente). Puoi sincronizzare sulla tua rete locale, il che significa che è veloce (puoi anche sincronizzare su Internet se lo desideri) e sincronizzare quanto vuoi - limitato solo dallo spazio disponibile sul disco e dalla larghezza di banda. Unison ha sia una GUI che un'interfaccia terminale, il che significa che puoi usarla sul desktop e sul server allo stesso modo. C'è una buona guida sulla wiki di Ubuntu a cui potresti voler fare riferimento se scegli di usare Unison.


1
Questo è esattamente quello che sto cercando, ma c'è un problema in esso imgur.com/Apqbq.png anche altre persone hanno avuto lo stesso problema all'unisono. Conosci una soluzione?
Gaurav Butola,

1
Hmm, non l'ho visto da solo, ma ho trovato il seguente bug Debian che potresti voler tenere d'occhio: bugs.debian.org/cgi-bin/bugreport.cgi?bug=252336 - sembra un problema con il programma viene interrotto. Prova a rimuovere il file che menziona e prova ancora. Se è persistente, potresti avere più fortuna con la versione da riga di comando (è quella che uso). Mi dispiace, non posso essere di ulteriore aiuto.
Iain Lane,

Grazie per l'aiuto. Questo è esattamente quello che volevo, è davvero un ottimo strumento, sto sincronizzando i miei dati tramite SSH usando all'unisono.
Gaurav Butola,

7

Lo strumento migliore per questo è lo strumento da riga di comando "Rsync". Se hai bisogno di una GUI, prova Unison o LuckyBackup, che si basano sul concetto di Rsync. Unison e LuckyBackup sono entrambi nei repository.

Un esempio di rsync potrebbe essere:

rsync -vxtr / home / scaine / Immagini / / home / AltroUtente / Immagini /

... che sincronizzerebbe la mia directory Pictures con la directory Pictures di OtherUser. Le opzioni che ho specificato verificheranno tutte le copie, conserveranno i timestamp / permessi durante la copia e attraverseranno le sottodirectory trovate. Fai "man rsync" per ulteriori opzioni.

Per quanto riguarda il collegamento dei tuoi PC insieme, mettili su uno switch / hub o usa il cavo crossover, quindi condividi le directory tramite samba.

EDIT: Alcuni punti positivi da chiarire se l'obiettivo è "rispecchiare" i due PC. Questo comando "aggiunge" solo i file dall'origine alla destinazione. Se devi cancellare, allora avrai bisogno anche dell'opzione -delete.

All'indagine, sembra che Rsync non gestisca il mirroring particolarmente bene. Vedi questo per rendersi conto che probabilmente troverai file più vecchi che sovrascrivono file più giovani durante questo aggiornamento! Peggio ancora, anche se ottieni l'opzione -update per funzionare e prevenire questo comportamento, non "aggiorna" il vecchio con il file più giovane, ma lo "salterà". Difficilmente ideale.

Infine, per eseguire la sincronizzazione bidirezionale, dovrai eseguire lo stesso comando ma invertire l'origine / destinazione. Ovviamente, questo è di utilità limitata ora, poiché il tuo primo comando (supponendo che tu abbia usato quell'opzione -delete) avrà eliminato qualsiasi file sulla destinazione che non esisteva sul sorgente. Unison gestisce la sincronizzazione bidirezionale abbastanza bene, dalla memoria.

Se stai seriamente cercando di mantenere sincronizzate più modifiche, una soluzione Dropbox è la soluzione migliore. Se riesci a dare un'altra occhiata a UbuntuOne o Dropbox, il collegamento simbolico potrebbe essere una soluzione - solo il collegamento simbolico alla cartella dei documenti, diciamo, mantenendo le immagini e la musica su One / Dropbox e usando questa soluzione rsync / unison per le cose grandi?


Sincronizzerei l'intero / home di entrambi, sarebbe giusto correre? rsync -vxtr / home / user1 / home / user2 farebbe una sincronizzazione bidirezionale? Conserverà l'ultima copia modificata di un documento o semplicemente ignorerà il file se esiste?
Gaurav Butola,

Vedi le mie modifiche alla domanda originale.
Scaine,

1

Un paio di alternative basate sulla gui se non vuoi o ti piace usare il terminale

grsync come il nome implica una GUI di base rsync.

all'unisono all'unisono usano più backend alternativi rispetto grsynca quello che fanno la stessa cosa

Puoi installarli dal Software Center o utilizzando apt-get


0

Risposta semplice:

rsync -vzu user@ip.address:/remote/dir/*  /local/dir

L'opzione -u confronta le date e trasferisce solo se la data target è precedente alla data di origine.

-v significa verboso, -z significa usare la compressione.

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.