Jak zsynchronizować pliki / dane między dwoma komputerami w sieci domowej?

11

Mam komputer stacjonarny i laptop z prawie tymi samymi plikami w katalogu domowym. Czasami robię zmiany ~/Music, ~/Documentsitp Ale te zmiany oczywiście nie wpływają na inne maszyny.

Chcę mieć rozwiązanie do synchronizacji wszystkich danych w folderach domowych mojego laptopa i komputera stacjonarnego. Od czasu do czasu mogę je połączyć kablem krzyżowym.

Nie chcę używać Ubuntu One ani Dropbox (pliki są duże i nie ma potrzeby korzystania z Internetu, gdy oba są w sieci domowej).

Gaurav Butola
źródło
Dropbox oferuje również synchronizację sieci, więc może niekoniecznie jest to złe narzędzie.
Turbo

Odpowiedzi:

8

W przypadku niewielkiego zestawu plików sugeruję Dropbox lub Ubuntu One , ale wygląda na to, że chcesz zsynchronizować swoją kolekcję muzyki między komputerami i żaden z nich nie jest szczególnie odpowiedni z dwóch powodów:

  • Obie synchronizują się z Internetem, co oznacza, że ​​duże zbiory plików będą długo czekać na pobranie i przesłanie
  • Oferują ograniczoną ilość miejsca (z możliwością zakupu większej liczby), co oznacza, że ​​w przypadku dużej kolekcji plików może się okazać, że będziesz musiał wydać dużo pieniędzy

Unison , którego używam do lokalnej replikacji, nie ma żadnego z tych ograniczeń (z natury). Możesz synchronizować przez sieć lokalną, co oznacza, że ​​jest szybka (możesz także synchronizować przez Internet, jeśli chcesz), i możesz synchronizować tyle, ile chcesz - ograniczone tylko dostępnym miejscem na dysku i przepustowością. Unison ma zarówno interfejs GUI, jak i interfejs terminala, co oznacza, że ​​można go używać na pulpicie i serwerze w jednakowy sposób. Istnieje dobry przewodnik na wiki Ubuntu , do którego możesz się odwołać, jeśli zdecydujesz się na korzystanie z Unison.

Iain Lane
źródło
1
Właśnie tego szukam, ale jest w tym problem. Imgur.com/Apqbq.png inni ludzie również mieli ten sam problem z unisonem. Znasz rozwiązanie?
Gaurav Butola,
1
Hmm, sam tego nie widziałem, ale znalazłem następujący błąd Debiana, na który warto zwrócić uwagę: bugs.debian.org/cgi-bin/bugreport.cgi?bug=252336 - brzmi jak problem z program jest przerywany. Spróbuj usunąć wspomniany plik i spróbuj ponownie. Jeśli jest trwały, możesz mieć więcej szczęścia z wersją wiersza poleceń (tej używam). Przepraszam, nie mogę pomóc.
Iain Lane,
Dzięki za pomoc. Właśnie tego chciałem. To naprawdę świetne narzędzie. Synchronizuję dane za pośrednictwem SSH, używając unison.
Gaurav Butola,
7

Najlepszym narzędziem do tego jest narzędzie wiersza polecenia „Rsync”. Jeśli potrzebujesz GUI, wypróbuj Unison lub LuckyBackup, które są oparte na koncepcji Rsync. Unison i LuckyBackup znajdują się w repozytoriach.

Przykładem rsync może być:

rsync -vxtr / home / scaine / Pictures / / home / OtherUser / Pictures /

... który zsynchronizuje mój katalog Pictures z katalogiem OtherUser's Pictures. Opcje, które określiłem, zweryfikują wszelkie kopie, zachowają znaczniki czasu / uprawnienia podczas kopiowania i przejdą do podkatalogów, w których zostały znalezione. Wykonaj „man rsync”, aby uzyskać więcej opcji.

Jeśli chodzi o łączenie komputerów razem - umieść je na przełączniku / koncentratorze lub użyj kabla krosowego, a następnie udostępnij katalogi przez sambę.

EDYCJA: Kilka dobrych punktów do zrobienia, jeśli celem jest „odbicie” dwóch komputerów. To polecenie „dodaje” tylko pliki ze źródła do miejsca docelowego. Jeśli musisz usunąć, musisz tam również opcję -delete.

Na dochodzenia wynika, że rsync ma nie obsługiwać mirroring szczególnie dobrze. Zobacz, aby uświadomić sobie, że podczas tej aktualizacji prawdopodobnie znajdziesz starsze pliki zastępujące młodsze pliki ! Co gorsza, nawet jeśli dostaniesz opcję -update, która zadziała i zapobiegniesz takiemu zachowaniu, nie „zaktualizuje” starszego pliku młodszym plikiem - po prostu go „pominie”. Niezbyt idealne.

Wreszcie, aby wykonać synchronizację dwukierunkową, musisz uruchomić to samo polecenie, ale odwrócić źródło / dest. Oczywiście ma to teraz ograniczone zastosowanie, ponieważ twoje pierwsze polecenie (zakładając, że użyłeś tej opcji -delete) usunie każdy plik w miejscu docelowym, który nie istniał w źródle. Unison radzi sobie całkiem dobrze z dwukierunkową synchronizacją z pamięci.

Jeśli poważnie próbujesz zsynchronizować wiele zmian, najlepszym rozwiązaniem będzie Dropbox. Jeśli możesz rzucić okiem na UbuntuOne lub Dropbox, rozwiązaniem może być dowiązanie symboliczne - powiedz tylko dowiązanie folderu dokumentów, powiedzmy, utrzymując Zdjęcia i Muzykę wyłączone One / Dropbox i używając tego rozwiązania rsync / unison do dużych rzeczy?

Scaine
źródło
Synchronizowałbym całość / dom obu z nich, czy dobrze byłoby uruchomić? rsync -vxtr / home / user1 / home / user2 czy zrobiłby synchronizację dwukierunkową? Czy zachowa najnowszą edytowaną kopię dokumentu, czy po prostu zignoruje plik, jeśli istnieje?
Gaurav Butola,
Zobacz moje zmiany w pierwotnym pytaniu.
Scaine,
1

Kilka alternatyw opartych na GUI, jeśli nie chcesz lub nie lubisz korzystać z terminala

grsync jako nazwa oznacza podstawowe gui do rsync.

unison unison używa więcej alternatywnych backendów, grsyncale poza tym robią to samo

Możesz je zainstalować z Centrum oprogramowania lub za pomocą apt-get

Allan
źródło
0

Prosta odpowiedź:

rsync -vzu [email protected]:/remote/dir/*  /local/dir

Opcja -u porównuje daty i przenosi tylko wtedy, gdy data docelowa jest starsza niż data źródłowa.

-v oznacza pełne, -z oznacza użycie kompresji.

Yan King Yin
źródło