Unison (简体中文)

From ArchWiki
Jump to navigation Jump to search
The printable version is no longer supported and may have rendering errors. Please update your browser bookmarks and please use the default browser print function instead.
翻译状态:本文是 Unison翻译。上次翻译日期:2014-07-26。如果英文版本有所更改,则您可以帮助同步翻译。

Tango-preferences-desktop-locale-modified.png这篇文章或章节的翻译不反映原文。Tango-preferences-desktop-locale-modified.png

原因:Last updated in 2014(在 Talk:Unison (简体中文)# 中讨论)

Unison是一款可以在类UNIX操作系统(包括 Linux, Mac OS X, 和Solaris) 和Windows 环境下运行的双向文件同步工具。他可以把一个文件或目录的两个备份分别储存在两个不同的主机(或同一个主机的不同的磁盘上),分别修改,并且通过把双方的改变传递到对方来完成同步。同时,他也不限制哪一方做主机。

安装

请从official repositories 安装 unison, 那里有提供 CLI, GTK+ 和 GTK+ 2.0 接口. 如果有线下文档需求的话,请从 AUR 安装 unison-docAUR[断开的链接:package not found].

配置

为了使用Unison,你需要创建一份配置文件.

GUI

如果想在GUI环境下配置的话 请运行:

$ unison-gtk2

手动操作

或者,在~/.unison里手动创建配置文件,并且将接下来的几行加入到默认配置文件~/.unison/profilename.prf里。

为被同步文件定义根目录

root=/home/user/

定义一个远程目录,文件将被同步到那里

root=ssh://example.com//path/to/server/storags

SSH提供参数(可选)

sshargs=-p 4000

定义同步哪些文件和目录:

# dirs
path=Documents
path=Photos
path=Study
# files
path=.bashrc
path=.vimrc

你还可以定义无视哪些文件:

ignore=Name temp.*
ignore=Name .*~
ignore=Name *.tmp
注意: 如若需要更多咨询请看 User Manual and Reference Guide中的 Sample profiles

使用

设定好配置文件以后就可以开始同步了:

$ unison profilename

如果你选择使用GUI工具的话就这么干:

$ unison-gtk2

然后选择配置文件。Unison的界面很赞,你可以看到变动和进度。

版本不兼容性

如果你希望Unison能正常工作的话,请确保每一个客户端上安装的版本都是一样的。举个例子,如果一套电脑上安装了2.40版本而另外一台上安装的是2.32,那他们就没法互相同步了。这对于所有全部一切你希望进行同步作业的计算机都适用。

由于Linux发行版数目众多,Unison的release错综复杂,所以你很有可能会陷入老版本的泥潭。Arch Linux在上游的Extra repository里提供有最新版本的Unison。同时在 AUR 有非官方的 2.32版本 (unison-232AUR[断开的链接:package not found])和 2.27版本(unison-227AUR[断开的链接:package not found]) 的 PKGBUILD,这样各种发行版的用户们都可以在他们的系统上愉快的使用Unison啦

提醒与小技巧

人生苦短,少敲键盘

如果哪位在一个有能力维持一个合适的scrollback buffer的VDT环境下运行Unison的话,他就没有确认每一个无冲突改变的必要了;设定 auto 为 true 来避开这些提示。

常规配置文件同步

在同步那些在不同的系统(比如服务器,工作站,笔记本,智能手机)但却含有通用构造(比如键盘映射,基本shell同义名)的配置文件(比如针对本地程序,对安全性敏感的配置)时,最好把这些内容放到分散的配置文件中(比如.bashrc_common)并且只对他们进行同步。

警告: 通过让被同步方(甚至也许还包括其他与被同步方同步的机器)的配置文件接受恶意的篡改,配置文件的双向同步可能会打开一条入侵的光明大道。这对于对手来说很有吸引力,尤其是在比如公共shell服务器vs个人工作站这样双方"实力悬殊"的情况下,因为要瓦解一个安全等级更低的系统看起来真不是什么难事。你并不需要在两台特定的机器间进行双向同步时一直使用noupdate;如果真的有这个必要,请在同步时确认每一处变动。在对待自动的双向同步行为的时候,当心点。

参阅