一、              相关软件背景介绍

1.       InotifyInotify 是一个 Linux 内核特性,它监控文件系统,并且及时向专门的应用程序发出相关的事件警告,比如删除、读、写和卸载操作等。要使用 inotify,必须具备一台带有 2.6.13 或更新内核 Linux 机器。

 

2.       RsyncRsync (Remote sync)是类unix系统下的数据镜像备份工具,可以使用scpssh等方式来传输文件,也可以通过直接的socket连接。Rsync在镜像整个目录树和文件系统时非常高效,第一次同步时 rsync 会复制全部内容,但在下一次就只传输修改过的文件。Rsync 在传输数据的过程中还可以实行压缩及解压缩操作,因此可以使用更少的带宽。

 

3.       Lsyncd: Live Syncing (Mirror) Daemon,是一个开源软件,lsyncd采用inotify原理监听某一目录,如果目录内发生增、删、改,再利用rsync协议自动同步到多个服务器。更多详细信息可以参考介绍:http://code.google.com/p/lsyncd

 

 

二、              安装及配置lsyncd + rsync

1.       安装

1.1   安装rsync:一般Linux上都已经默认安装了rsync,可以用rpm命令查询一下

          [root@DBRA ~]# rpm -qa | grep rsync

          rsync-3.0.6-4.el5_7.1

          [root@DBRA ~]#

          如果没有安装,可以直接用yum安装,或者在光盘里面找到相应的rpm包安装。

 

1.2   安装lsyncd-1.26

          lsyncd-1.26下载地址:

          http://lsyncd.googlecode.com/files/lsyncd-1.26.tar.gz

 

          Lsyncd安装:

          [root@DBServer1 ~]# tar -zxvf lsyncd-1.26.tar.gz

          [root@DBServer1 ~]# cd lsyncd-1.26

          [root@DBServer1 lsyncd-1.26]# ./configure && make && make install

 

2.       配置rsync的服务器,客户端和lsyncd

2.1   服务端配置:

          [root@DBServer2 ~]# vi /etc/rsyncd.conf

uid = root

gid = root

use chroot = no

max connections = 4

pid file = /var/run/rsyncd_lsyncd.pid

lock file = /var/run/rsyncd_lsyncd.lock

log file = /var/log/rsyncd_lsyncd.log

 

ignore errors

read only = no

write only = no

list = no

          hosts allow = 172.16.10.15

2.2   客户端配置

客户端不需要具体的配置信息,只需要有配置文件能够启动就可以了。

          [root@DBServer1 ora11203]# touch /etc/rsyncd.conf

 

2.3   配置lsyncd

[root@DBServer1 ora11203]# vi /usr/local/lsyncd/etc/lsyncd.conf

<lsyncd version="1">

<settings>

        <!– the file to log messages –>

        <logfile      filename="/var/log/lsyncd"/>

        <!–Specify the rsync (or other) binary to call–>

        <binary       filename="/usr/bin/rsync"/>

        <!–uncomment to create a file containing pid of the daemon–>

        <pidfile      filename="/var/run/lsyncd.pid"/>

        <callopts>

                <option text="-lt%r"/>

                <option text="–delete"/>

                <exclude-file/>

                <source/>

                <destination/>

        </callopts>

</settings>

 

<directory>

        <source path="/ora11203/Windows/"/>

        <target path="172.16.10.35:/home/kevin/Windows/"/>

        <!–

        or it can also be an absolute path for localhost

        <target path="/absolute/path/to/target">

        –>

</directory>

          </lsyncd>

 

2.4   启动rsync,启动lsyncd

          服务端启动rsync

          [root@11gR2_64 u02]# /usr/bin/rsync –daemon –config=/u02/rsync/etc/rsyncd.conf

 

          客户端启动rsync

[root@DBRA u02]# touch /etc/rsyncd.conf

          [root@DBRA u02]# /usr/bin/rsync –daemon

 

          客户端启动lsyncd

          [root@DBRA u02]# /etc/init.d/lsyncd start –daemon

 

2.5   lsyncd初体验

 

启动Lsyncd服务,在第一次同步完成后,可以看一下lsyncd的日志,如下图:

 

          此时共有15224个目录被监控。

          这时如果我们在被监控的目录里面添加一个文件,

[root@DBServer1 system]# pwd

/ora11203/Windows/system

[root@DBServer1 system]# ll

total 0

[root@DBServer1 system]# date && touch testfile1

Mon May 12 10:43:58 CST 2014

 

          在日志里面,可以看到,创建文件的操作被瞬间捕获。

 

同时会立刻将文件同步到远端的服务器上(我这里是172.16.10.35

         

可以看到,lsyncd对目录的监控捕获变化的速度是非常迅速的。




Related posts

coded by nessus
分享:  DeliciousGReader鲜果豆瓣CSDN网摘
Trackback

only 1 comment untill now

  1. endure@resounds.carnegey” rel=”nofollow”>.…

    thank you!…

Add your comment now

无觅相关文章插件