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 可以多次出現。