一.編譯安裝unison unison各版本下載地址 http://www.seas./~bcpierce/unison//download.html unison編譯器下載地址 http://caml./pub/distrib (版本至少3.0.7) 1.環境說明 (在其他地方部署時修改下IP與同步目錄即可) host1 192.168.42.241 同步目錄 /root/test host2 192.168.42.243 同步目錄 /root/test 2. 安裝Objective Caml compiler(若安裝的unison的是二進制程序,則不用安裝。因二進制程序版本都太老,這里選擇編譯安裝) [root@241 ~]# cd /usr/src/ [root@241 src]# wget http://caml./pub/distrib/ocaml-3.12/ocaml-3.12.0.tar.gz [root@241 src]# tar xf ocaml-3.12.1+rc1.tar.gz [root@241 src]# tar xf ocaml-3.12.0.tar.gz [root@241 src]# cd ocaml-3.12.0 [root@241 ocaml-3.12.0]# ./configure [root@241 ocaml-3.12.0]# make world opt [root@241 ocaml-3.12.0]# make install 3.編譯安裝Unison [root@241 ~]# wget http://www.seas./~bcpierce/unison//download/releases/stable/unison-2.40.102.tar.gz [root@241 src]# tar xf unison-2.40.102.tar.gz [root@241 src]# cd unison-2.40.102 [root@241 unison-2.40.102]# make UISTYLE=text THREADS=true STATIC=true [root@241 unison-2.40.102]# cp unison /usr/local/bin/ #將生成的二進制程序復雜到系統的PATH路徑里 [root@241 unison-2.40.102]# scp unison root@192.168.42.243:/usr/local/bin/unison #將unison二進制程序復制到host2 二.配置雙機ssh信任 [root@241 ~]# ssh-keygen [root@243 ~]# ssh-keygen [root@243 ~]# ssh-copy-id -i .ssh/id_rsa.pub root@192.168.42.241 [root@241 ~]# ssh-copy-id -i .ssh/id_rsa.pub root@192.168.42.243 三.unison配置 1.編輯unison配置文件 [root@241 ~]# vim .unison/default.prf # Unison preferences file #root = /root/test #兩個root表示要同步的文件夾(下面的同步腳本定義了同步目錄,所以這里注釋掉,否則會沖突) #root = ssh://192.168.42.243//root/test #path = /root/test #兩個path表示只同步指定的子目錄及文件,而非整個目錄 #path = /root/test #ingnore = PATH test/txt #ingnore = Path 表示忽略/root/test 下面的test/txt batch = true #表示全自動模式,接受默認動作 #maxthreads = 300 #repeat = 1 #retry = 3 owner = true #owner group perms表示保持原來的屬主 屬組 權限 group = true perms = -1 fastcheck = true #true表示同步時通過文件的創建時間來比較兩地文件 false表示比較兩地文件的內容 rsync = false #debug = verbose sshargs = -C #表示使用ssh的壓縮方式傳輸 xferbycopying = true confirmbigdel = false #true表示當需要同步的兩個目錄一個為空時,unison將停止 false表示同步的某個目錄為空時不會停止運轉 log = true logfile = /root/.unison/unison.log #host2 配置文件一樣 四.安裝inotify 1.查看系統是否支持inotify [root@241 ~]# ls -l /proc/sys/fs/inotify total 0 -rw-r--r-- 1 root root 0 Nov 11 11:25 max_queued_events -rw-r--r-- 1 root root 0 Nov 11 11:25 max_user_instances -rw-r--r-- 1 root root 0 Nov 11 11:25 max_user_watches 2.安裝inotify [root@241 src]# tar xf inotify-tools-3.14.tar.gz [root@241 src]# cd inotify-tools-3.14 [root@241 inotify-tools-3.14]# ./configure [root@241 inotify-tools-3.14]# make && make install echo 30000000 > /proc/sys/fs/inotify/max_user_watches (注意:重啟機器后此設置會消失,如果監控的文件數目不是特別多,可以不設置) 3.編寫inotify實時監控腳本 [root@241 ~]# vim unison.sh #!/bin/bash DESTHOST=192.168.42.243 DESTHOSTDIR=/root/test SRCDIR=/root/test /usr/local/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w %f' -e create,delete,modify,move $SRCDIR | while read line; do /usr/local/bin/unison $SRCDIR ssh://$DESTHOST/$DESTHOSTDIR done chmod +x unison.sh 4.按同樣方法在host2安裝inotify和編寫同步腳本 5.分別在host1 host2 讓腳本運行于后臺 [root@241 ~]# nohup ./unison.sh & [root@243 ~]# nohup ./unison.sh & 本文出自 “運維人生” 博客,請務必保留此出處http://yangsc.blog.51cto.com/7051889/1580846 |
|
來自: zjycy > 《FreeBsd/linux》