Односторонняя синхронизация / резервное копирование с Unison


13

Я использую инструмент синхронизации Unison с компьютерами Mac OSX и Ubuntu 9.10 для резервного копирования музыки с Mac на Ubuntu. Дело в том, что я хочу, чтобы мой Mac был источником, а Ubuntu - целью, чтобы машина Ubuntu всегда была точной копией папки Music на Mac, но если я что-то удаляю из Ubuntu, она выиграет ». удалить на Mac. Я посмотрел на документы, но в данный момент это похоже на мою голову.

Ответы:


1

Лучшим инструментом для работы может быть rsync (вам нужно установить его на обоих компьютерах). Я использую его для синхронизации музыкальной папки моего ноутбука с домашним файловым сервером, что очень похоже на вашу ситуацию. rsync специализируется на обновлении зеркальной копии.

Такая командная строка может быть полезна (если вы запускаете ее из Ubuntu):

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

Довольно легко переключить вышеуказанную строку, если вы хотите запустить ее со своего Mac и нажать на компьютер с Ubuntu вместо того, чтобы тянуть.


33

Используйте unison -force:

Руководство по эксплуатации:

Включение предпочтения -force rootзаставляет Unison разрешать все различия (даже не конфликтующие изменения) в пользу root. Это эффективно превращает Unison из синхронизатора в утилиту зеркалирования. Вы также можете указать -force newer(или -force older), чтобы заставить Unison выбрать файл с более поздним (более ранним) режимом. В этом случае -timesпредпочтение также должно быть включено. Это предпочтение отменяется forcepartialпредпочтением. Это предпочтение следует использовать, только если вы уверены, что знаете, что делаете!

Например (в режиме сокета). Запустите unison listener в каталоге, который вы хотите быть зеркалом чего-то другого. Целевой этот сокет в вызове унисон клиента. Сила заставляет изменения быть ОДНЫМ ПУТЕМ от данного корня.

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

В другом месте или на том же хосте:

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

2
Синтаксис для файла профиля - указать путь к корневому каталогу для переменной force. Т.е.force = /home/me/mysynchdir
Даниил

2

Хотя ответ TheToasterThatCould будет «работать», имейте в виду, что он не будет правильно выполнять резервное копирование файловой системы Mac «Resource Forks»

В то время как версия rsync для Mac OSX ориентирована на использование ресурсов, версии rsync для linux не поддерживаются (и, вероятно, никогда не будут, потому что версия rsync для Apple ориентирована на OSX и не представляет эти ветки ресурсов для rsync на другом конце в способ, которым может управлять не-OSX версия rsync). Результатом этого является то, что ресурсные вилки не будут rsync между компьютерами Mac и Linux.

Некоторые приложения Mac используют вилки ресурсов для хранения данных, связанных с конкретным файлом. Если вы уверены, что ваши файлы, которые вы синхронизируете, не нуждаются или не используют вилки ресурсов, тогда все должно быть в порядке, чтобы использовать rsync.

Если вы хотите синхронизировать вилки ресурсов, тогда лучше использовать unison, потому что (согласно документам unison) он может синхронизировать вилки ресурсов.


0

FreeFileSync - это приложение с открытым исходным кодом, способное зеркалировать каталог. Он может работать для односторонней или двухсторонней синхронизации или в режиме «внесения изменений». Я могу сказать, что он может выполнять работу Microsoft Synctoy. FreeFileSync можно свободно использовать в Mac OS X, Linux и Windows.


-1

В настоящее время unison /home/test/thing2 /home/test/thing2 socket://somehost:123456/ -silent -batchбудет работать там, где -batchвообще нет вопросов

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.