Описание тега unison

Unison - это двунаправленный инструмент синхронизации файлов для обнаружения конфликтов для OSX, Unix и Windows. Он позволяет хранить две копии набора файлов и каталогов на разных хостах (или разных дисках на одном хосте), изменять их отдельно, а затем обновлять, распространяя изменения в каждой реплике на другую.

обзор

Unison - это инструмент синхронизации файлов для OSX, Unix и Windows. Он позволяет хранить две копии набора файлов и каталогов на разных хостах (или разных дисках на одном хосте), изменять их отдельно, а затем обновлять, распространяя изменения в каждой реплике на другую.

Unison имеет ряд общих функций с такими инструментами, как пакеты управления конфигурацией ( CVS, PRCS, Subversion, BitKeeper и т. Д.), Распределенные файловые системы ( Coda и т. Д.), Утилиты однонаправленного зеркалирования ( rsync и т. Д.) И другие синхронизаторы. ( Intellisync, согласовать и т. Д.). Однако есть несколько моментов, в которых он отличается:

  • Unison работает как на Windows, так и на многих разновидностях Unix (Solaris, Linux, OS X и т. Д.) Систем. Кроме того, Unison работает на разных платформах, что позволяет вам синхронизировать ноутбук с Windows, например, с сервером Unix.

  • В отличие от простых утилит зеркалирования или резервного копирования, Unison может работать с обновлениями обеих реплик распределенной структуры каталогов. Обновления, которые не конфликтуют, распространяются автоматически. Конфликтующие обновления обнаруживаются и отображаются.

  • В отличие от распределенной файловой системы, Unison - это программа уровня пользователя: нет необходимости модифицировать ядро ​​или иметь привилегии суперпользователя на любом хосте.

  • Unison работает между любой парой компьютеров, подключенных к Интернету, общаясь по прямой линии сокета или туннелируя по зашифрованному соединению ssh. Он осторожен с пропускной способностью сети и хорошо работает на медленных каналах, таких как соединения PPP. Передача небольших обновлений в большие файлы оптимизируется с использованием протокола сжатия, аналогичного rsync.

  • Унисон устойчив к неудачам. Осторожно всегда оставлять реплики и собственные частные структуры в разумном состоянии, даже в случае ненормального завершения или сбоев связи.

  • Унисон имеет четкую и точную спецификацию.

  • Унисон свободен; полный исходный код доступен по открытой лицензии GNU.

использование

При первом запуске Unison полная синхронизация указанных каталогов займет некоторое время. Это создаст архивные файлы в .unison каталог ($HOME/.unison в Unix, $USERPROFILE\.unison в Windows), чтобы сохранить структуру каталогов синхронизации и сделать будущие синхронизации намного быстрее.

Унисон может быть запущен очень простым способом, вызывая его как unison [options] root1 root2 где root1 а также root2 каталоги для синхронизации. Чтобы упростить запуск Unison с большим количеством опций и проще вызывать Unison из скрипта или как задание cron, удобно создать профиль, чтобы указать корни синхронизации и другие опции. Если у нас есть профиль profile.prf (хранится в .unison каталог), мы можем использовать этот профиль, запустив unison profile, Простой профиль будет выглядеть примерно так:

# profile.prf
root = /home/user
root = ssh://user@198.51.100.42//home/user
path = Documents
path = Files

Это синхронизирует локальные каталоги /home/user/Documents а также /home/user/Files с соответствующими удаленными каталогами на 198.51.100.42 по сш.

Более интересный профиль Unison, который можно использовать для автоматизации резервного копирования на удаленный сервер, может выглядеть примерно так:

# profile.prf
root = /home/user
root = ssh://user@198.51.100.42//home/user
sshargs = -C -i /path/to/ssh_key

path = Documents
ignore = Path Documents/secrets
ignore = Name *.tmp
ignore = Name {.*,*}.sw[ponx]

auto = true
batch = true
confirmbigdeletes = false

backuplocation = central
backupdir = /home/user/Unison-Backups
maxbackups = 7
backup = Name {.*,*}
backupprefix = .$VERSION

Этот профиль будет синхронизировать все /home/user/Documents на удаленный сервер, за исключением /home/user/Documents/secrets подкаталог, все файлы с .tmp расширение и любые файлы подкачки, которые vim любит создавать. Он также автоматически синхронизирует файлы без запроса подтверждения (auto = true) и будет хранить резервные копии файлов, которые будут перезаписаны при синхронизации в /home/user/Unison-Backups,

Полезные ссылки

Домашняя страница Унисон
Руководство пользователя и справочное руководство
Хороший гид по унисону от Филиппа Го