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
使用[编辑 | 编辑源代码]
设定好配置文件以后就可以开始同步了:
$ 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
)并且只对他们进行同步。
noupdate
;如果真的有这个必要,请在同步时确认每一处变动。在对待自动的双向同步行为的时候,当心点。参阅[编辑 | 编辑源代码]
- Unison (file synchronizer)
- Official website
- Yahoo! user group[失效链接 2021-05-17 ⓘ]
- Liberation through data replication[失效链接 2021-05-17 ⓘ] by Philip Guo
- Setting up Unison for your mom[失效链接 2021-11-19 ⓘ] by Philip Guo
- Replication using Unison on TWiki