歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
Linux教程網 >> Linux基礎 >> Linux教程 >> 雙向同步軟件Unison的安裝與配置

雙向同步軟件Unison的安裝與配置

日期:2017/2/28 15:59:14   编辑:Linux教程

一、Unison簡介
Unison是Windows、Linux以及其他Unix平台下都可以使用的文件同步工具,它能使兩個文件夾(本地或網絡上的)保持內容的一致。Unison擁有與其它一些同步工具或文件系統的相同的特性,但也有自身的特點:
1.跨平台使用;
2.對內核和用戶權限沒有特別要求;
3.Unison是雙向的,它能自動處理兩分拷貝中更新沒有沖突的部分,有沖突的部分將會顯示出來讓用戶選擇更新策略;
4.只要是能連通的兩台主機,就可以運行unison,可以直接使用socket連接或安全的ssh連接方式,對帶寬的要求不高,使用類似rsync的壓縮傳輸協議。
5. Unison實時雙向同步的配置不太好做,而且雙向同步本身就是不靠譜的,很容易發生混亂。

二、編譯安裝Unison(只在一台服務器上安裝ocaml、unison即可)
Linux下通過源碼包編譯安裝Unison時,需要用到Objective Caml compiler。
通過以下方式安裝
[root@server1 ~]# wget http://caml.inria.fr/pub/distrib/ocaml-3.12/ocaml-3.12.0.tar.gz
[root@server1 ~]# tar -xzvf ocaml-3.12.0.tar.gz
[root@server1 ~]# cd ocaml-3.12.0
[root@server1 ocaml-3.12.0]# ./configure
[root@server1 ocaml-3.12.0]# make world opt
[root@server1 ocaml-3.12.0]# make install


編譯安裝Unison
[root@server1 ~]# wget http://www.seas.upenn.edu/~bcpierce/unison//download/releases/stable/unison-2.40.63.tar.gz
[root@server1 ~]# tar -xzvf unison-2.40.63.tar.gz
[root@server1 ~]# cd unison-2.40.63
[root@server1 unison-2.40.63]# make UISTYLE=text
[root@server1 unison-2.40.63]# make install


在執行make install的過程中,可能會出現以下錯誤提示:
mv: cannot stat '/root/bin//unison': No such file or directory
make: [doinstall] Error 1 (ignored)
cp unison /root/bin/
cp: cannot create regular file '/root/bin/': Is a directory
make: *** [doinstall] Error 1


出現錯誤的原因在與Unison默認是將文件Copy到/root/bin目錄,但Linux默認是沒有該目錄的,因此我們需要將生成的可執行文件unison復制到系統的PATH目錄。
[root@server1 unison-2.40.63]# cp unison /usr/local/bin


將可執行文件unison上傳到遠程主機(假設server2主機IP為192.168.1.161)
[root@server1 unison-2.40.63]# scp unison [email protected]:/root/
通過SSH登陸到遠程主機,再將unison復制到server2的PATH目錄
[root@server2 ~]#cp unison /usr/local/bin


三、配置ssh key信任
建議通過普通用戶進行操作,理由是通過root操作本身就危險,免密碼登陸的root就更危險了。


在兩台服務器上創建unison用戶
[root@server1 ~]# useradd -m unison
[root@server1 ~]# passwd unison
[root@server2 ~]# useradd -m unison
[root@server2 ~]# passwd unison


在server1上創建key並配置server2的信任
[root@server1 ~]# su – unison
[unison@server1 ~]$ ssh-keygen -t rsa
在提示保存私鑰(key)和公鑰(public key)的位置時,使用默認值;
在提示是否需要私鑰密碼(passphrase)時,直接敲回車,即不使用私鑰密碼。
之後,將生成一對密鑰,id_rsa(私鑰文件)和id_rsa.pub(公鑰文件),保存在/home/unison/.ssh/目錄下。


將公鑰添加到server2的 authorized_keys 文件中
將文件上傳到server2(假設server2主機IP為192.168.1.161)
[unison@server1 ~]$ scp ~/.ssh/id_rsa.pub [email protected]:/home/unison/


使用rsync用戶SSH到登陸到遠程主機,並將公鑰添加到 authorized_keys 文件中
[unison@server2 ~]$ mkdir .ssh
[unison@server2 ~]$ chmod 700 .ssh
[unison@server2 ~]$ mv ~/id_rsa.pub ~/.ssh/authorized_keys


同理,執行以下步驟在server2上創建key並配置server1的信任
[root@server2 ~]# su – unison
[unison@server2 ~]$ ssh-keygen -t rsa


將文件上傳到server1(假設server1主機IP為192.168.1.160)
[unison@server2 ~]$ scp ~/.ssh/id_rsa.pub [email protected]:/home/unison/


使用rsync用戶SSH到登陸到server1,並將公鑰添加到 authorized_keys 文件中
[unison@server1 ~]$ mv ~/id_rsa.pub ~/.ssh/authorized_keys


重啟SSH服務
[root@server1 ~]# /etc/init.d/sshd restart
[root@server2 ~]# /etc/init.d/sshd restart

Copyright © Linux教程網 All Rights Reserved