Описание тега unison
обзор
Unison is a file-synchronization tool for OSX, Unix, and Windows. Он позволяет хранить две копии набора файлов и каталогов на разных хостах (или разных дисках на одном хосте), изменять их отдельно, а затем обновлять, распространяя изменения в каждой реплике на другую.
Unison shares a number of features with tools such as configuration management packages ( CVS, PRCS, Subversion, BitKeeper, etc.), distributed filesystems ( Coda, etc.), uni-directional mirroring utilities ( rsync, etc.), and other synchronizers ( Intellisync, Reconcile, etc). Однако есть несколько моментов, в которых он отличается:
Unison работает как на Windows, так и на многих разновидностях Unix (Solaris, Linux, OS X и т. Д.) Систем. Кроме того, Unison работает на разных платформах, что позволяет вам синхронизировать ноутбук с Windows, например, с сервером Unix.
В отличие от простых утилит зеркалирования или резервного копирования, Unison может работать с обновлениями обеих реплик распределенной структуры каталогов. Обновления, которые не конфликтуют, распространяются автоматически. Конфликтующие обновления обнаруживаются и отображаются.
В отличие от распределенной файловой системы, Unison - это программа уровня пользователя: нет необходимости модифицировать ядро или иметь привилегии суперпользователя на любом хосте.
Unison работает между любой парой компьютеров, подключенных к Интернету, общаясь по прямой линии сокета или туннелируя по зашифрованному соединению ssh. Он осторожен с пропускной способностью сети и хорошо работает на медленных каналах, таких как соединения PPP. Передача небольших обновлений в большие файлы оптимизируется с использованием протокола сжатия, аналогичного rsync.
Унисон устойчив к неудачам. Осторожно всегда оставлять реплики и собственные частные структуры в разумном состоянии, даже в случае ненормального завершения или сбоев связи.
Унисон имеет четкую и точную спецификацию.
Унисон свободен; полный исходный код доступен по открытой лицензии GNU.
использование
The first time Unison is run, it will take some time to fully synchronize the specified directories. It will create archive files in the .unison
каталог ($HOME/.unison
in Unix, $USERPROFILE\.unison
in Windows) to store the structure of the sync directories and make future syncs much quicker.
Unison can be run in a very basic way by evoking it as unison [options] root1 root2
где root1
а также root2
are the directories to be synced. To more easily run Unison with many options and to more easily evoke Unison from within a script or as a cron job, it is convenient to create a profile to specify the roots of synchronization and other options. If we have a profile profile.prf
(stored in the .unison
directory), we can use this profile by running unison profile
, A simple profile will look something like this:
# profile.prf
root = /home/user
root = ssh://user@198.51.100.42//home/user
path = Documents
path = Files
This will synchronize the local directories /home/user/Documents
а также /home/user/Files
with the corresponding remote directories on 198.51.100.42
over ssh.
A more interesting Unison profile that could be used for automating backups to a remote server could look something like this:
# 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
This profile will sync all of /home/user/Documents
to the remote server except for the /home/user/Documents/secrets
subdirectory, all files with a .tmp
extension, and any swap files that vim likes to create. It will also automatically sync files without asking for confirmation (auto = true
) and will store backups of files that are overwritten when they are synced in /home/user/Unison-Backups
,
Полезные ссылки
Unison Homepage
User Manual and Reference Guide
A good Unison guide by Philip Guo