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