在安装inotify-tools前请先确认你的linux内核是否打到了2.6.13,并且在编译时开启了CONFIG_INOTIFY选项。你 可以按下面的方式简单的确认这一点:ls /proc/sys/fs/inotify,如果支持的话会有 max_queued_events,max_user_instances,max_user_watches三项。
源服务器           192.168.1.11
目标服务器       192.168.1.12
目的:实现源服务器192.168.1.11 /data/app文件夹文件实时同步到目标服务器192.168.1.12 的/data/app目录下
在源服务器上安装rsync并配置
 
vi /etc/rsyncd.conf

uid = nobody
gid = nogroub
use chroot = no
max connections = 3
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsync.lock
log file = /var/log/rsyncd.log

[app]
path = /data/app/
ignore errors
read only = false
list = false
auth users = rsyncuser
secrets file = /etc/rsyncuser.pas
 
vi /etc/rsyncuser.pas
 
rsyncuser:123
 
chmod 600 /etc/rsyncd.conf
chmod 600 /etc/rsyncuser.pas
 
启动rsync
 
/usr/bin/rsync --daemon
 
在备份服务器上安装inotify
http://downloads.sourceforge.net/inotify-tools/inotify-tools-3.13.tar.gz?modtime=1199213676&big_mirror=0

./configure   
make && make install
 
编写触发同步脚本
vi /data/rsync.sh
#!/bin/sh
SRC=/data/app/
DST=rsyncuser@fileserver::app
INWT=/usr/local/bin/inotifywait
RSYNC=/usr/bin/rsync
$INWT -mrq -e create,move,delete,modify $SRC | while read D E F ; do
$RSYNC -vzrtopg --progress --delete --password-file=/etc/rsyncuser.pas $SRC $DST
done
 
chmod +x rsync.sh
 
vi /etc/rsyncuser.pas
 
123
 
chmod 600 /etc/rsyncuser.pas

设置开机启动
echo "/data/rsync.sh &" >> /etc/rc.local
 
测试文件实时同步
 
是源服务器上创建一个.txt文件。查看目标服务器目录是否与源服务器目录文件一致。
源服务器:echo "test" > /data/app/1.txt
[root@src]# echo "test" > /data/app/1.txt
[root@src]# sending incremental file list
./
1.txt
sent 224 bytes    received 30 bytes    169.33 bytes/sec
total size is 42    speedup is 0.17
 
ls /data/app
1.txt
 
在目标服务器上用ls查看/data/app文件夹目录
 
ls /data/app    
1.txt
 
cat /data/app/1.txt
[root@dst]# cat app/1.txt    
test