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
через 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 Филипп Го