--> webser1[webroot] 192.168.0.16
/
sersync+rsync---> webser2[webroot] 192.168.0.20
192.168.0.15(/webroot)\
--> webser3[webroot] 192.168.0.8
原理:
通过Linux内核的inotify 机制,根据源目录的变化情况,安排触发更新式的rsync同步任务
以上拓补图中sersync就是源目录服务器,所有对网页修改的更新只需要在源目录服务器上做修改即可更新至三对WEB_SERVE上
实现过程:
1.在webserver1,webserver2,webserver3使用rsyncd服务共享出一个目录来:
bash
mkdir /webroot
chown nobody.nobody /webroot
vim /etc/rsyncd.conf
uid=nobody
gip=nobody
use chroot=yes
address=0.0.0.0
port 873
log file=/var/log/rsyncd.log
pid file=/var/run/rsyncd.pid
lock file=/var/run/rsyncd.lock
hosts allow=192.168.0.0/24
hosts deny=*
[webroot]
path=/webroot
comment= web root share with rsync
read only=no
auth users=user01 user02
secrets file=/etc/rsyncd_user.db
bash
vim /etc/rsyncd_user.db
user01:123
user02:456
bash
chmod 600 /etc/rsyncd_user.db
mkdir /webroot
chown nobody.nobody /webroot
在三台机器上启用服务:
bash
system start rsync
2.在sersync_server上安装sersync软件包:
bash
tar xzvf sersync2.5_32bit_binary_stable_final.tar.gz -C /opt --解压出来直接可用(二进制)
mv GNU-Linux-x86/ sersync
cd sersync
vim confxml --编辑配置文件
<sersync>
<localpath watch="/var/tmp"> --定义监控的目录
<remote ip="192.168.1.10" name="webroot"/> --同步到远程服务器的ip及rsync共享名称
<remote ip="192.168.1.20" name="webroot"/>
<remote ip="192.168.1.30" name="webroot"/>
</localpath>
<rsync>
<commonParams params="-artuz"/> --rcync同步参数
<auth start="true" users="user01" passwordfile="/root/passwd.txt"/> --定义登录远程服务器的账号/密码
<userDefinedPort start="flase" port="873"/><!-- port=874 --> --定义端口
<timeout start="false" time="100"/><!-- timeout=100 --> --定义超时时间
<ssh start="false"/>
</rsync>
bash
vim /root/passwd.txt
123
chmod 600 /root/passwd.txt --必须设置600的权限才能使用.
bash
./sersync2 -d -r -d以后后服务器的方式启动,-r清除远程服务器文件中本地服务器没有的文件
-o 指定配置文件,默认在本在目录加载
-n 指定线程数量
./sersync2 -h 查看帮助.
3.测试
在sersync_server上的/var/tmp目录中做文件的增删改则这些操作会被同步至其它三台webserver