一、rsync是類unix系統下的數據鏡像備份工具,從軟件的命名上就可以看出來了—remote sync
特性如下:
1、可以鏡像保存整個目錄樹和文件系統。
2、可以很容易做到保持原來文件的權限、時間、軟硬鏈接等等。
3、無須特殊權限即可安裝。
4、優化的流程,文件傳輸效率高。
5、可以使用rcp、ssh等方式來傳輸文件,當然也可以通過直接的socket連接。
6、支持匿名傳輸。
lsyncd的功能:
(1)開源軟件lsyncd采用inotify原理監聽某一目錄,如果目錄內發生增、刪、改、利用rsync協議自動同步到多個服務器
(2)inotify,從kernel 2.6.13開始正式并入內核,RHEL5支持
(3)可以本地多點目錄的監控并實現到遠程目錄的同步
(4)在rsync client上通過lsyncd監控并推送數據給rsync server的rsync daemon,rsync server接收lsyncd推送過來的數據,并寫入本地磁盤
(5)官方介紹:http://code.google.com/p/lsyncd
注意:而對于那種實時都在變化的數據(例如:數據庫),那么這種數據的同步,DRBD技術是一個更好的選擇。
二、軟件的下載與安裝
1、服務器端(rsync)
(1)下載并安裝rsync
代碼如下[root@example1 ~]# wget http://www.samba.org/ftp/rsync/src/rsync-3.0.7.tar.gz [root@example1 ~]# tar zxvf rsync-3.0.7.tar.gz [root@example1~]#./configure –prefix=/usr/local/rsync –with-rsyncd-conf=/usr/local/rsync/etc/rsyncd.conf –disable-ipv6 && make && make install
(2)創建用于同步數據的目錄(rsync服務器端)
作用:該目錄用于存放lsyncd推送過來的數據www.111Cn.net
代碼如下[root@example1 ~]# mkdir /tmp/share/ [root@example1 ~]# chown -R root:root /tmp/share;
2、客戶端(lsyncd+rsync)
(1)下載并安裝rsync,無需配置rsyncd.conf
代碼如下[root@example2 ~]# wget http://www.samba.org/ftp/rsync/src/rsync-3.0.7.tar.gz [root@example2 ~]# tar zxvf rsync-3.0.7.tar.gz [root@example2 ~]# ./configure –prefix=/usr/local/rsync –disable-ipv6 && make && make install
(2)下載并安裝lsyncd
代碼如下[root@example2 ~]# wget http://lsyncd.googlecode.com/files/lsyncd-1.26.tar.gz [root@example2 ~]# tar zxvf lsyncd-1.26.tar.gz [root@example2 ~]# ./configure –prefix=/usr/local/lsyncd –enable-xml-config && make && make install
(3)創建用于同步數據的目錄(rsync客戶端)
作用:該目錄用于存放將要同步給rsync server的數據
代碼如下[root@example2 ~]# mkdir /tmp/share [root@example2 ~]# chown -R root:root /tmp/share;
三、配置rsync服務器端與rsync客戶端
1、配置rsync服務器端
1)配置rsync
代碼如下 [root@example1 ~]# mkdir /usr/local/rsync/etc [root@example1 ~]# vi /usr/local/rsync/etc/rsyncd.conf uid = root gid = root use chroot = no max connections = 4 log file = /var/log/rsyncd.log pid file = /var/run/rsyncd.pid lock file = /var/run/rsync.lock [share] path = /tmp/share #保存將要被同步的數據的目錄www.111cn.net comment = My Share Documents hosts allow = 192.168.0.54 #允許訪問的主機IP hosts deny = 0.0.0.0/32 list = yes ignore errors = yes read only = false #是否只讀2)配置lsyncd
代碼如下 [root@example1 ~]# mkdir /usr/local/lsyncd/etc [root@example1 lsyncd-1.26]# cp lsyncd.conf.xml /usr/local/lsyncd/etc/ [root@example1 lsyncd-1.26]# ln -sf /usr/local/lsyncd/etc/lsyncd.conf.xml /etc/lsyncd.conf.xml [root@example1 ~]# vi /usr/local/lsyncd/etc/lsyncd.conf.xml <lsyncd version=”1″> <settings> <logfile filename=”/var/log/lsyncd.log”/> <binary filename=”/usr/local/rsync/bin/rsync”/> <pidfile filename=”/var/run/lsyncd.pid”/> <callopts> <option text=”-avz”/> <option text=”–delete”/> <option text=”–force”/> <exclude-file/> <source/> <destination/> </callopts> </settings> <directory> <source path=”/tmp/share/”/> #注意區別:”/tmp/share/” 與 “/tmp/share” <target path=”192.168.0.53::share”/> </directory> </lsyncd>2、配置rsync客戶端
代碼如下[root@example2 ~]# mkdir /usr/local/rsync/etc [root@example2 ~]# touch /usr/local/rsync/etc/rsyncd.conf
三、啟動相關服務并測試
1、rsync服務器端
代碼如下[root@example1 ~]# /usr/local/rsync/bin/rsync –daemon
2、rsync客戶端
代碼如下[root@example2 ~]# /usr/local/rsync/bin/rsync –daemon [root@example2 ~]# /usr/local/lsyncd/bin/lsyncd –conf /usr/local/lsyncd/etc/lsyncd.conf
3、測試
先在rsync client的/tmp/share/目錄進行增加、刪除文件,然后再查看rsync server上的/tmp/share目錄情況
新聞熱點
疑難解答