unison 安装使用
目錄
##編譯安裝ocaml,unison依賴于ocaml
???????? ##編譯安裝unison,安裝依賴性包
##其他一臺主機和上面的配置相同,步驟省略
##配置免密登陸
##測試:
##配置文件啟動運行:
####配置文件:
####配置文件解析:
##實時同步:
安裝:
https://caml.inria.fr/pub/distrib/ocaml-4.02/
https://www.seas.upenn.edu/~bcpierce/unison//download/releases/
##編譯安裝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"
##其他一臺主機和上面的配置相同,步驟省略
##配置免密登陸
10.124.5.215:
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub deployer@10.124.5.216
10.124.5.216免密登錄10.124.5.215:
ssh-keygen -t rsa
ssh-copy-id -i ~/.ssh/id_rsa.pub deployer@10.124.5.215
##測試:
指定需要同步的文件夾的用戶和組
[root@VOP-CS18 test_1]# chown -R deployer: /tmp/test_1/
執行以下命令:
[deployer@VOP-CS18test_1]# unison -batch -servercmd=/usr/local/bin/unison /tmp/test_1 ssh://deployer@10.124.5.215//tmp/test_1
需要指定unison的路徑,否則它會到/root/bin/unison尋找
?
##配置文件啟動運行:
??????? 盡管可以完全通過命令行的方式來指定unison運行所需要的參數,但我還是推薦使用配置文件來進行配置使用unison,原因很簡單,看配置文件比看命令行容易理解,而且可管理性更強。
??? 默認的配置文件夾位于~/.unison,即當前用戶的home目錄下,windows則位于C:Documents and Settingscurrentuser.unison,默認的配置文件名是default.prf
???????? deployer用戶家目錄下的/home/deployer/.unison/default.prf 是默認的配置文件。
???????? 兩端的配置文件只需要在其中一端配置就可以實現雙向同步。
[deployer@VOP-CS18 .unison]$ unison
??????? 直接執行unison ,它讀取該用戶的家目錄下的.unison下尋找default.prf文件。
??????? 如果將default.prf 改成了config.prf ,那我們同步時需要執行:unison config
####配置文件:
root = /tmp/test_1
root = ssh://deployer@10.124.5.215//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也不會停止運轉
?
##實時同步:
1.可以使用crontab :
/2 * * * /usr/local/bin/unison > /dev/null
service crond reload
2.可以使用repeat=1參數,每秒同步一次
3.可以搭配inotify實現實時同步,此方法可以解決在unison之前在兩端同時修改同一個文件而造成的不同步的問題。
?
總結
以上是生活随笔為你收集整理的unison 安装使用的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 草枯树荣,让生命活得云淡风轻
- 下一篇: 阿里云服务平台,分布式架构云平台解决方案