日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問(wèn) 生活随笔!

生活随笔

當(dāng)前位置: 首頁(yè) > 编程资源 > 编程问答 >内容正文

编程问答

unison配置

發(fā)布時(shí)間:2023/12/18 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 unison配置 小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

在部署雙機(jī)熱備的情況下,要保證兩臺(tái)熱備機(jī)器上特定目錄的文件一致,需要使用文件夾雙向同步功能,unison和inotify配合使用,可以實(shí)現(xiàn)此效果。

操作系統(tǒng) CentOS6.4 64位
兩臺(tái)機(jī)器地址分別為192.168.2.20 和 192.168.2.71

1、下載unison安裝包
http://www.seas.upenn.edu/~bcpierce/unison//download.html

2、下載unison編譯器
http://caml.inria.fr/pub/distrib/ocaml-4.02/

3、安裝編譯器
./configure
make world opt
make install

4、安裝unison
make UISTYLE=text
make install

在執(zhí)行make install的過(guò)程中,可能會(huì)出現(xiàn)以下錯(cuò)誤提示:
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

出現(xiàn)錯(cuò)誤的原因在與Unison默認(rèn)是將文件Copy到/root/bin目錄,但Linux默認(rèn)是沒(méi)有該目錄的,因此我們需要將生成的可執(zhí)行文件unison復(fù)制到系統(tǒng)的PATH目錄。
cp unison /usr/local/bin

5、配置ssh key信任
建議通過(guò)普通用戶(hù)進(jìn)行操作,理由是通過(guò)root操作本身就危險(xiǎn),免密碼登陸的root就更危險(xiǎn)了。

在192.168.2.20上執(zhí)行以下命令
[unison@localhost ~]$ ssh-keygen -t rsa
在提示保存私鑰(key)和公鑰(public key)的位置時(shí),使用默認(rèn)值;
在提示是否需要私鑰密碼(passphrase)時(shí),直接敲回車(chē),即不使用私鑰密碼。
之后,將生成一對(duì)密鑰,id_rsa(私鑰文件)和id_rsa.pub(公鑰文件),保存在/home/unison/.ssh/目錄下。

[unison@localhost ~]$ scp .ssh/id_rsa.pub unison@192.168.2.71:/home/unison/ 將公鑰拷貝到另外一臺(tái)機(jī)器上

然后在另外一臺(tái)192.168.2.71機(jī)器上執(zhí)行以下命令
[unison@localhost ~]$ mv id_rsa.pub .ssh/authorized_keys
以root用戶(hù)重啟sshd
[root@localhost ~]# /etc/init.d/sshd restart

192.168.2.20上測(cè)試是否配置成功
[unison@localhost ~]$ ssh 192.168.2.71 date 如果不用輸入密碼直接登錄,就說(shuō)明配置成功

用同樣的方式,在192.168.2.71上完成配置

6、修改unison配置
[unison@localhost ~]$ vi .unison/default.prf

Unison preferences file

#
#
root=/home/unison/test
root=ssh://unison@192.168.2.71//home/unison/test
batch=true
fastcheck=true
logfile=/home/unison/.unison/unison.log
repeat=1 #一秒執(zhí)行一次檢查

owner=true #保持同步過(guò)來(lái)的文件屬主

group=true #保持同步過(guò)來(lái)的文件組信息

注意,owner和group為true的情況下,非unison用戶(hù)創(chuàng)建的文件同步失敗,因?yàn)橥竭^(guò)了之后,執(zhí)行chown會(huì)提示無(wú)權(quán)限
如果要保持屬主和組一致,就要用root賬戶(hù)來(lái)執(zhí)行同步

7、設(shè)置成開(kāi)機(jī)啟動(dòng)
以root用戶(hù)將 su - unison -c unison 寫(xiě)入rc.local

這時(shí),通過(guò)repeat來(lái)重復(fù)檢查,如果目錄下文件太多的話(huà),會(huì)導(dǎo)致unison資源占用太多,
設(shè)置repeat=0,使用inotify配合使用,可以在文件發(fā)生增刪改的情況下,啟動(dòng)unison,執(zhí)行一次同步

8、inotify安裝
下載源碼 https://sourceforge.net/projects/inotify-tools/files/inotify-tools/
[root@localhost unison]# tar xfv inotify-tools-3.13.tar.gz
[root@localhost inotify-tools-3.13]# ./configure
[root@localhost inotify-tools-3.13]# make
[root@localhost inotify-tools-3.13]# make install

9、編寫(xiě)inotify執(zhí)行腳本
[root@localhost unison]# vi notify.sh

LOG=/home/unison/inotify.log
inotifywait -mrq -e create,delete,modify,move /home/unison/test | while read line; do
unison
echo -n “line">>LOG
echo date | cut -d " " -f1-4 >> $LOG
done

此處inotifywait -mrq -e create,delete,modify,move表示要監(jiān)測(cè)create,delete,modify,move四類(lèi)文件操作,可以根據(jù)需要配置監(jiān)測(cè)的操作
注意,首先要將unison的配置文件里面的repeat設(shè)置為0或者注釋掉,這樣unison只執(zhí)行一次就退出了。

10、將inotify腳本添加到開(kāi)機(jī)啟動(dòng)
nohup su - unison -c /home/unison/notify.sh &

總結(jié)

以上是生活随笔為你收集整理的unison配置的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。

如果覺(jué)得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。