准备两台机子,一台是192.168.10.150做数据源服务器,一台是192.168.10.151做目标服务器,如图所示:

现在要实现的需求是150/data/www/目录实时同步到151/data/www/目录下

 

一、在151上配置rsync 服务器

cd /usr/local/src

wget 

tar  -zxvf rsync-3.0.7.tar.gz

cd  rsync-3.0.7

./configure --prefix=/usr/local/rsync 

make &&  make install

编辑配置文件 vim  /etc/rsyncd.conf,把它的内容改成如下:

uid = nobodygid = nobodyuse chroot = nomax connections =30pid file =/var/run/rsyncd.pidlock file =/var/run/rsyncd.locklog file =/var/log/rsyncd.logtransfer logging =yeslog format = %t %a%m %f %bsyslog facility =local3timeout = 300[www]path=/data/www/comment=wwwread only = noauth users=zhangsecretsfile=/etc/rsync.pashostsallow=192.168.10.150

然后 mkdir -p  /data/www/

chown  -R nobody.nobody  /data/www/

vim  /etc/rsync.pas编辑密码文件,加入以下内容:

zhang:123456

chmod  600   /etc/rsync.pas

/usr/local/rsync/bin/rsync–daemon  启动rsyncd服务

 

二、在150上的操作

安装rsync151上的一样,两边的rsync版本要保持一致,不然可能会出现莫名其妙的错误

vim  /etc/rsync.pas  编辑密码文件,加入以下内容:

123456

chmod  600 /etc/rsync.pas

安装inotify-tools

tar  -zxvf inotify-tools-3.14.tar.gz

cd  inotify-tools

./configure--prefix=/usr/local/inotify-tools/

make   &&  make  install

mkdir  -p /data/www/

配置实时同步脚本,rsync-inotify.sh

#!/bin/bashdir=/data/www/ip=192.168.10.151/usr/local/inotify-tools/bin/inotifywait-mrq --timefmt '%d/%m/%y-%H:%M' --format '%T %w%f' -emodify,delete,create,attrib ${dir} | while read file  do      /usr/local/rsync/bin/rsync -av --progress--delete --password-file=/etc/rsync.pas   /data/www/  zhang@$ip::wwwdone

然后执行nohup sh  rsync-inotify.sh  &  即可