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

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

Обзор

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

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

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

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

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

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

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

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

  • Унисон - это бесплатно; полный исходный код доступен под лицензией GNU Public License.

Применение

При первом запуске 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 через ssh.

Более интересный профиль 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.

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


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