Synchronizacja / tworzenie kopii zapasowych w jednym kierunku za pomocą Unison

13

Używam narzędzia do synchronizacji Unison z komputerami Mac OSX i Ubuntu 9.10, aby wykonać kopię zapasową muzyki z komputera Mac na Ubuntu. Chodzi o to, że chcę, aby mój komputer Mac był źródłem, a Ubuntu celem, aby maszyna Ubuntu była zawsze dokładną kopią folderu Music na komputerze Mac, ale jeśli usunę coś z Ubuntu, to wygra ” zostanie usunięty na komputerze Mac. Spojrzałem na doktorów, ale w tej chwili to trochę przesadza.

roflwaffle
źródło

Odpowiedzi:

1

Lepszym narzędziem do tego zadania może być rsync (musisz zainstalować go na obu komputerach). Używam go do synchronizacji folderu muzycznego laptopa z domowym serwerem plików, co jest bardzo podobne do twojej sytuacji. rsync specjalizuje się w aktualizowaniu kopii lustrzanych.

Przydatny może być taki wiersz poleceń (zakładając, że uruchamiasz go z Ubuntu):

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

Przełączanie powyższej linii jest dość łatwe, jeśli chcesz uruchomić ją z komputera Mac i wypchnąć na komputer Ubuntu zamiast ciągnąć.

TheToasterThatCould
źródło
33

Użyj unison -force:

Podręcznik:

Uwzględnienie preferencji -force rootpowoduje, że Unison rozwiązuje wszystkie różnice (nawet zmiany nie będące w konflikcie) na korzyść roota. To skutecznie zmienia Unison z synchronizatora w narzędzie do tworzenia kopii lustrzanych. Możesz także określić -force newer(lub -force older), aby zmusić Unison do wybrania pliku z późniejszym (wcześniejszym) czasem modtime. W takim przypadku -timesnależy również włączyć preferencję. Ta preferencja jest zastępowana przez forcepartialpreferencję. Tej preferencji należy używać tylko wtedy, gdy masz pewność, że wiesz, co robisz!

Np. (Przy użyciu trybu gniazda). Uruchom unison listener w katalogu, w którym chcesz być lustrem czegoś innego. Wyceluj w to gniazdo podczas połączenia klienta unison. Siła powoduje, że wszystkie zmiany są JEDEN SPOSÓB od danego katalogu głównego.

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

W innym miejscu lub na tym samym hoście:

unison -silent -force /home/test/thing2 /home/test/thing2 socket://somehost:123456/
Rich K.
źródło
2
Składnia pliku profilu polega na określeniu ścieżki do katalogu głównego dla zmiennej force. To znaczyforce = /home/me/mysynchdir
Daniel
2

Chociaż odpowiedź TheToasterThatCould będzie „działać”, należy pamiętać, że nie będzie ona poprawnie tworzyła kopii zapasowej systemu plików Mac „Resource Forks”

Podczas gdy wersja rsync dla Mac OSX jest zgodna z rozwidlaniem zasobów, wersje rsync dla Linuksa nie są (i prawdopodobnie nigdy nie będą, ponieważ wersja rsync dla Apple jest specyficzna dla OSX i nie wyświetla tych widelców zasobów dla rsync na drugim końcu w sposób obsługi rsync w wersji innej niż OSX). Wynikiem tego jest to, że rozwidlenia zasobów nie będą rsynchronizowane między komputerami Mac i Linux.

Niektóre aplikacje dla komputerów Mac wykorzystują widelce zasobów do przechowywania danych związanych z danym plikiem. Jeśli masz pewność, że synchronizowane pliki nie potrzebują lub nie korzystają z widelców zasobów, użycie rsync powinno być w porządku.

Jeśli chcesz zsynchronizować widelce zasobów, lepszym rozwiązaniem będzie unison, ponieważ (zgodnie z dokumentami unison) może synchronizować widelce zasobów.

wszystko naturalne
źródło
0

FreeFileSync to aplikacja typu open source, która jest w stanie wykonać kopię lustrzaną katalogu. Może działać z synchronizacją jednokierunkową lub dwukierunkową lub w trybie „przyczyniania się”. Mogę powiedzieć, że może wykonać zadanie Microsoft Synctoy. FreeFileSync może być swobodnie używany w Mac OS X, Linux i Windows.

Teo
źródło
-1

Obecnie unison /home/test/thing2 /home/test/thing2 socket://somehost:123456/ -silent -batchbędzie działać, gdzie -batchnie ma żadnych pytań

Jin
źródło