一個桌面軟件,可以讓 OSX、Unix 和 Windows 系統的文件同步

一個桌面軟件,可以讓 OSX、Unix 和 Windows 系統的文件同步

Unison

Unison是OSX,Unix和Windows的文件同步工具。它允許將文件和目錄集合的兩個副本存儲在不同的主機(或同一主機上的不同磁盤)上,分別進行修改,然後通過將每個副本中的更改傳播到另一個副本來使其更新。

Unison與工具共享許多功能,例如配置管理包(CVS,PRCS, Subversion,BitKeeper等),分佈式文件系統(Coda等),單向鏡像實用程序(rsync等)以及其他同步器。 (Intellisync, 調和等)。

與其他工具不同的是

  • Unison可以在Windows和許多類型的Unix(Solaris,Linux,OS X等)系統上運行。此外,Unison 平臺工作,例如,允許您將Windows筆記本電腦與Unix服務器同步。
  • 與簡單的鏡像或備份實用程序不同,Unison可以處理對分佈式目錄結構的兩個副本的更新。不衝突的更新將自動傳播。檢測並顯示衝突的更新。
  • 與分佈式文件系統不同,Unison是一個用戶級程序:無需修改內核或在任一主機上都具有超級用戶特權。
  • Unison在連接到Internet的任何兩對計算機之間工作,通過直接套接字鏈接進行通信或通過加密的ssh連接建立隧道。請謹慎使用網絡帶寬,並在慢速鏈接(例如PPP連接)上運行良好。使用類似於rsync的壓縮協議,可以優化從小更新到大文件的傳輸。
  • Unison容忍失敗。即使在異常終止或通信失敗的情況下,也要始終保持副本及其私有結構處於明智狀態。
  • Unison有明確而準確的規格。
  • Unison是免費的;完整的源代碼可在GNU公共許可證下獲得。

編譯安裝ocaml,unison依賴於ocaml

[root@VOP-CS18 src]# yum -y install ctags-etags
[root@VOP-CS18 soft]# ll
-rw-r--r-- 1 root root 4211784 Aug 28 14:43 ocaml-4.02.0.tar.gz
-rw-r--r-- 1 root root 691251 Aug 28 14:41 unison-2.51.2.tar.gz
[root@VOP-CS18 soft]# tar xf ocaml-4.02.0.tar.gz -C /app
[root@VOP-CS18 soft]# pwd
/app/soft
[root@VOP-CS18 ocaml-4.02.0]# cd /app/ocaml-4.02.0/
[root@VOP-CS18 ocaml-4.02.0]# ./configure
** OCaml configuration completed successfully **(出現此行則顯示成功)
[root@VOP-CS18 ocaml-4.02.0]# make world opt
[root@VOP-CS18 ocaml-4.02.0]# make install

編譯安裝unison,安裝依賴性包

[root@VOP-CS18 soft]# tar xf unison-2.51.2.tar.gz -C /usr/local/
解壓出來的文件夾為src/,進入/usr/local/src下
[root@VOP-CS18 src]# make UISTYLE=text THREADS=true STATIC=true
倘若出錯,則運行 make UISTYLE=text,再出錯:多執行幾次,忽略這個錯誤。(UISTYLE=text THREADS=true STATIC=true 表示:使用命令方式,加入線程支持,以靜態模式編譯)
#[root@VOP-CS18 src]# cp ./unison /usr/local/bin
#倘若配置免密需要使用的不是root用戶,或者說運行unison的不是root用戶而是有sudo權限的其他用戶,那麼需要執行cp這條命令,且需要執行以下其中一種權限賦予方式使其具有可執行權限。還需要保證/usr/local/bin 在PATH路徑之下。
1.chown -R deployer: /usr/local/bin/unison ;chmod -R 755 /usr/local/bin/unison
2.chmod -R o+x /usr/local/bin/unison
##[root@VOP-CS18 src]# mkdir /root/bin
[root@VOP-CS18 src]# make install && echo "sucess"

配置文件

root = /tmp/test_1
root = ssh://[email protected]//tmp/test_1
#force =/tmp/test_1
servercmd=/usr/local/bin/unison
#ignore =/tmp/test_1/a
batch = true
#repeat = 1
#retry = 3
owner = true
group = true
perms = -1
#fastcheck = false
#rsync = false
sshargs = -C
#xferbycopying = true
confirmbigdel=false
log = true

logfile = /home/deployer/.unison/unison.log

配置文件解析:

1.兩個root表示需要同步的文件夾。
2.force表示以本地的/tmp/test_1文件夾為標準,將該目錄同步到遠端,開啟後則變成單項同步
3.ignore = Path表示忽略/tmp/test_1/a目錄,即同步時不同步它。
4. batch=true 表示全自動模式,接受並執行默認動作
5.log = true表示在終端輸出運行信息。
6.logfile則指定了同時將輸出寫入log文件。
7.owner = true //保持同步過來的文件屬主
8.group = true //保持同步過來的文件組信息
9.perms = -1 //保持同步過來的文件讀寫權限
10.repeat = 1 //間隔1秒後,開始新的一次同步檢查
11.retry = 3 //失敗重試
12.sshargs = -C //使用ssh的壓縮傳輸方式
fastcheck true 表示同步時僅通過文件的創建時間來比較,如果選項為false,Unison則將比較兩地文件的內容。
auto //接受缺省的動作,然後等待用戶確認是否執行。
ignore xxx //增加 xxx 到忽略列表中 :經測試此參數不能用。
ignorecase [true|false|default] //是否忽略文件名大小寫
follow xxx //是否支持對符號連接指向內容的同步

xferbycopying = true
immutable xxx //不變目錄,掃描時可以忽略
silent //安靜模式
times=true //同步修改時間
path xxx 參數 //只同步 -path 參數指定的子目錄以及文件,而非整個目錄,-path 可以多次出現。
confirmbigdel=false//默認值為true,表示當需要同步的兩個目錄一個為空時,unison將停止,這裡設置為false,即便為空unison也不會停止運轉

更多使用方法可以查看官方文檔

更多更優質的資訊,請關注我,你的支持會鼓勵我不斷分享更多更好的優質文章。


分享到:


相關文章: