unison 雙向同步

unison雙向同步

安裝unison

wget http://caml.inria.fr/pub/distrib/ocaml-3.12/ocaml-3.12.1.tar.gz

wget http://www.seas.upenn.edu/~bcpierce/unison//download/releases/stable/unison-2.40.63.tar.gz

tar -xf ocaml-3.12.1.tar.gz

cd ocaml-3.12.1

./configure

make world opt

make install

tar -xf unison-2.40.63.tar.gz

cd unison-2.40.63

make UISTYLE=text THREADS=true STATIC=true

cp unison /usr/local/bin/

unison的使用

本地使用unison

unison /test1 /test2

Proceed with propagating updates? [] y

[BGN] Copying filetest2 from /test1 to /test2

[END] Copying filetest2

Synchronization complete at (1 item transferred, 0 skipped, 0 failed)

遠程使用unison

[root@localhost ~]# unison /test1 ssh://root@192.168.1.3/mnt

Proceed with propagating updates? [] y

[BGN] Updating file filetest1 from /test1 to //localhost.localdomain/mnt

[END] Updating file filetest1

Synchronization complete at (1 item transferred, 0 skipped, 0 failed)

#################

注意:

root 和普通user 使用unison有不同的option

unison –help 看看使用說明

例如

root 會看到 -confirmbigdel

user 會看到 -confirmbigdeletes

實際上使用要打相對的option 才能使用

#################

通過配置文件來使用unison

相關註解如下:

force表示會以本地所指定文件夾為標準,將該目錄同步到遠端。這裡需要注意,如果指定了force參數,那麼Unison就變成了單項同步了,也就是說會以force指定的文件夾為准進行同步,類似與rsync。

Unison雙向同步基本原理是:假如有AB兩個文件夾,A文件夾把自己的改動同步到B,B文件夾也把自己的改動同步到A,最後AB兩文件夾的內容相同,是AB文件夾的合集。

Unison雙向同步的一個缺點是,對於一個文件在兩個同步文件夾中都被修改時,unison是不會去同步的,因為unison無法判斷以那個為準。

ignore = Path表示忽略指定目錄,即同步時不同步它。

batch = true,表示全自動模式,接受缺省動作,並執行。

-fastcheck true 表示同步時僅通過文件的創建時間來比較,如果選項為false,Unison則將比較兩地文件的內容。

log = true 表示在終端輸出運行信息。

logfile 指定輸出的log文件。

另外,Unison有很多參數,這裡僅介紹常用的幾個,詳細的請參看Unison手冊。

-auto //接受缺省的動作,然後等待用戶確認是否執行。

-batch //batch mode, 全自動模式,接受缺省動作,並執行。

-ignore xxx //增加 xxx 到忽略列表中

-ignorecase [true|false|default] //是否忽略文件名大小寫

-follow xxx //是否支持對符號連接指向內容的同步

owner = true //保持同步過來的文件屬主

group = true //保持同步過來的文件組信息

perms = -1 //保持同步過來的文件讀寫權限

repeat = 1 //間隔1秒後,開始新的一次同步檢查

retry = 3 //失敗重試

sshargs = -C //使用ssh的壓縮傳輸方式

xferbycopying = true"

-immutable xxx //不變目錄,掃描時可以忽略

-silent //安靜模式

-times //同步修改時間

-path xxx 參數//只同步-path 參數指定的子目錄以及文件,而非整個目錄,-path 可以多次出現。