Описание тега unison
Обзор
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 от Филиппа Го