unison实现文件双向同步
unison簡介
??Unison是一款跨windows/linux/MAC OS平臺的文件同步工具,不僅支持本地對本地同步,也支持通過SSH、RSH和Socket等網絡協議與遠程主機進行同步。最主要的是,Unison支持雙向同步操作,即任何一端數據發生改變,都會更新到對端;但是,unison無法實現實時雙向同步。
??與rsync區別:rsync同步是單向的,客戶端同步服務器端,而客戶端進行文件的刪除、修改等操作無法同步到服務端。
unison特性
1.支持跨平臺同步
2.雙向同步,自動更新兩份副本中沒有沖突的部分,有沖突的部分由用戶選擇更新策略
3.支持增量同步,每次同步完成后會記錄文件狀態,下次同步時,以上次的狀態為起點開始同步
unison安裝
[root@test src]# mkdir -p /usr/local/src/unison [root@test src]# cd /usr/local/src/unison #安裝ocaml編譯器 [root@test src]# yum install ctags-etags -y [root@test src]# wget http://caml.inria.fr/pub/distrib/ocaml-4.02/ocaml-4.02.3.tar.gz [root@test src]# tar -zxvf ocaml-4.02.3.tar.gz [root@test src]# cd ocaml-4.02.3 [root@test src]# ./configure [root@test src]# make world opt [root@test src]# make install #安裝unison [root@test src]# wget http://www.seas.upenn.edu/~bcpierce/unison//download/releases/stable/unison-2.48.3.tar.gz [root@test src]# tar -zxvf unison-2.48.3.tar.gz [root@test src]# cd unison-2.48.3 [root@test src]# make UISTYLE=text THREADS=true [root@test src]# make -p /root/bin [root@test src]# mkdir install [root@test src]# mkdir -p /usr/local/unison [root@test src]# cp /root/bin/unison /usr/local/unisonunison使用說明
unison示例
1.同步本地的兩個文件
unison /test1 /test2
執行命令后會有相關提示,詢問是否執行更新操作,輸入“y”后更新。
2.將本地的目錄/test1同步到遠程主機上
unison /test1 ssh://10.10.10.56//test2
友情提示:
1.異地同步雙向同步需要兩臺主機配置互相ssh無密碼登錄,在此就不做演示。
2.在與遠程主機同步時,我們執行同步命令后出現以下報錯:
這是由于我們在編譯安裝unison后,可執行文件在/root/bin下,在進行遠程同步時需要指定其路徑,如:
unison /test1 ssh://10.10.10.56//test2 -servercmd /root/bin/unison 或 unison /test1 ssh://10.10.10.56//test2 -servercmd /usr/local/unison/unison否則會出現上面的錯誤。而在本次安裝過程中,我們的unison雖copy在/usr/local/unison下,但直接執行unison命令使用的是/root/bin/unison。
unison參數
-testserver
測試連通性,不執行具體操作。如unison /test1 ssh://10.10.10.56//test2 -testserver - servercmd /usr/local/unison/unison
-servercmd
通知unison的具體執行路徑
-auton
接受缺省的動作,然后等待用戶確認是否執行
-batch
全自動模式,接受缺省動作,并執行。
-ignore xxx
增加 xxx 到忽略列表中
-path xxx
只同步 -path 參數指定的子目錄以及文件,而非整個目錄。-path 可以多次出現
-follow xxx
是否支持對符號連接指向內容的同步
owner = true (保持同步過來的文件屬主)
group = true (保持同步過來的文件組信息)
perms = -1 (保持同步過來的文件讀寫權限)
repeat = 1 (間隔1秒后,開始新的一次同步檢查)
retry = 3 (失敗重試)
sshargs = -C (使用ssh的壓縮傳輸方式)
xferbycopying = true
-immutable xxx
不變目錄,掃描時可以忽略
-silent
安靜模式
-times
同步修改時間
true表示同步時通過文件的創建時間來比較兩地文件,若為false,則比較兩地文件的內容。建議true
以上只是部分常用參數,還有其他參數需要我們具體了解。
unison配置文件
unison除了可以使用命令參數外,也可以調用配置文件的方式使用。
配置文件在/root/.unison下,缺省的配置文件為: “default.prf”。
執行方式如:
unison
unison會到在 ~/.unison 目錄下查找 “.prf” 配置文件。
如果不帶參數執行 unison,則查找 “default.prf” 文件
總結
??經過以上介紹,我們大體知道了unison的使用方法。它的雙向同步的確給我們帶來了極大的方便,但同時也有一個缺點:對于一個文件在兩個同步文件夾中都被修改時,unison是不會去同步的,因為unison無法判斷以那個為準。
總結
以上是生活随笔為你收集整理的unison实现文件双向同步的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Discuz showWindow函数解
- 下一篇: HTML5小游戏程序案例--冰桶挑战h5