unison 安装使用
目錄
##編譯安裝ocaml,unison依賴于ocaml
???????? ##編譯安裝unison,安裝依賴性包
##其他一臺(tái)主機(jī)和上面的配置相同,步驟省略
##配置免密登陸
##測試:
##配置文件啟動(dòng)運(yùn)行:
####配置文件:
####配置文件解析:
##實(shí)時(shí)同步:
安裝:
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 **(出現(xiàn)此行則顯示成功)
[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/,進(jìn)入/usr/local/src下
[root@VOP-CS18 src]# make UISTYLE=text THREADS=true STATIC=true
??? 倘若出錯(cuò),則運(yùn)行 make UISTYLE=text,再出錯(cuò):多執(zhí)行幾次,忽略這個(gè)錯(cuò)誤。(UISTYLE=text THREADS=true STATIC=true 表示:使用命令方式,加入線程支持,以靜態(tài)模式編譯)
#[root@VOP-CS18 src]# cp ./unison /usr/local/bin
#倘若配置免密需要使用的不是root用戶,或者說運(yùn)行unison的不是root用戶而是有sudo權(quán)限的其他用戶,那么需要執(zhí)行cp這條命令,且需要執(zhí)行以下其中一種權(quán)限賦予方式使其具有可執(zhí)行權(quán)限。還需要保證/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"
##其他一臺(tái)主機(jī)和上面的配置相同,步驟省略
##配置免密登陸
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/
執(zhí)行以下命令:
[deployer@VOP-CS18test_1]# unison -batch -servercmd=/usr/local/bin/unison /tmp/test_1 ssh://deployer@10.124.5.215//tmp/test_1
需要指定unison的路徑,否則它會(huì)到/root/bin/unison尋找
?
##配置文件啟動(dòng)運(yùn)行:
??????? 盡管可以完全通過命令行的方式來指定unison運(yùn)行所需要的參數(shù),但我還是推薦使用配置文件來進(jìn)行配置使用unison,原因很簡單,看配置文件比看命令行容易理解,而且可管理性更強(qiáng)。
??? 默認(rèn)的配置文件夾位于~/.unison,即當(dāng)前用戶的home目錄下,windows則位于C:Documents and Settingscurrentuser.unison,默認(rèn)的配置文件名是default.prf
???????? deployer用戶家目錄下的/home/deployer/.unison/default.prf 是默認(rèn)的配置文件。
???????? 兩端的配置文件只需要在其中一端配置就可以實(shí)現(xiàn)雙向同步。
[deployer@VOP-CS18 .unison]$ unison
??????? 直接執(zhí)行unison ,它讀取該用戶的家目錄下的.unison下尋找default.prf文件。
??????? 如果將default.prf 改成了config.prf ,那我們同步時(shí)需要執(zhí)行: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.兩個(gè)root表示需要同步的文件夾。
2.force表示以本地的/tmp/test_1文件夾為標(biāo)準(zhǔn),將該目錄同步到遠(yuǎn)端,開啟后則變成單項(xiàng)同步
3.ignore = Path表示忽略/tmp/test_1/a目錄,即同步時(shí)不同步它。
4.?batch=true 表示全自動(dòng)模式,接受并執(zhí)行默認(rèn)動(dòng)作
5.log = true表示在終端輸出運(yùn)行信息。
6.logfile則指定了同時(shí)將輸出寫入log文件。
7.owner = true //保持同步過來的文件屬主?
8.group = true //保持同步過來的文件組信息?
9.perms = -1 //保持同步過來的文件讀寫權(quán)限?
10.repeat = 1 //間隔1秒后,開始新的一次同步檢查?
11.retry = 3 //失敗重試?
12.sshargs = -C //使用ssh的壓縮傳輸方式?
fastcheck true 表示同步時(shí)僅通過文件的創(chuàng)建時(shí)間來比較,如果選項(xiàng)為false,Unison則將比較兩地文件的內(nèi)容。?
auto //接受缺省的動(dòng)作,然后等待用戶確認(rèn)是否執(zhí)行。?
ignore xxx //增加 xxx 到忽略列表中? :經(jīng)測試此參數(shù)不能用。
ignorecase [true|false|default] //是否忽略文件名大小寫?
follow xxx //是否支持對(duì)符號(hào)連接指向內(nèi)容的同步?
xferbycopying = true
immutable xxx //不變目錄,掃描時(shí)可以忽略?
silent //安靜模式?
times=true //同步修改時(shí)間?
path xxx 參數(shù) //只同步 -path 參數(shù)指定的子目錄以及文件,而非整個(gè)目錄,-path 可以多次出現(xiàn)。
confirmbigdel=false//默認(rèn)值為true,表示當(dāng)需要同步的兩個(gè)目錄一個(gè)為空時(shí),unison將停止,這里設(shè)置為false,即便為空unison也不會(huì)停止運(yùn)轉(zhuǎn)
?
##實(shí)時(shí)同步:
1.可以使用crontab :
/2 * * * /usr/local/bin/unison > /dev/null
service crond reload
2.可以使用repeat=1參數(shù),每秒同步一次
3.可以搭配inotify實(shí)現(xiàn)實(shí)時(shí)同步,此方法可以解決在unison之前在兩端同時(shí)修改同一個(gè)文件而造成的不同步的問題。
?
總結(jié)
以上是生活随笔為你收集整理的unison 安装使用的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 草枯树荣,让生命活得云淡风轻
- 下一篇: 阿里云服务平台,分布式架构云平台解决方案