web主:192.168.1.139
web备:192.168.1.138
一、安装web主:
1.安装rsync
wget
tar zxvf rsync-3.0.9.tar.gz
cd rsync-3.0.9./configure --prefix=/usr/local/rsync
make make install2.安装完毕后建立认证密码文件:
echo "123456">/usr/local/rsync/rsync.passwd
其中“123456”是我们设置的密码为了安全起见我们把密码文件的权限设置成 600:
chmod 600 /usr/local/rsync/rsync.passwd3.安装 inotify
wget tar zxvf inotify-tools-3.14.tar.gz cd inotify-tools-3.14./configure --prefix=/usr/local/inotifymake && make install
4.创建 rsync 复制脚本
脚本的主要作用是是将 server 端的目录/tmp 里的内容,如果修改了(无论是添加、修改、删除文件)能够通过 inotify 监控到,并通过 rsync 实时的同步给 client 的/tmp 里,下面是通过 shell 脚本实现的#!/bin/bash
host=192.168.1.138src=/web/wwwroot/des=apabiuser=apabiuser/usr/local/inotify/bin/inotifywait -mrq --timefmt '%d/%m/%y %H:%M' --format '%T %w%f%e' -e modify,delete,create,attrib $src | while read filesdo/usr/local/rsync/bin/rsync -vzrtopg --delete --progress --password-file=/usr/local/rsync/rsync.passwd $src echo "${files} was rsynced" >>/var/log/rsync.log 2>&1done并给予 764 权限
chmod 764 rsync.sh 切记等客户端安装完毕后再运行这个脚本,否侧会报错sh /web/wwwroot/rsync.sh &5.我们还可以把 rsync.sh 脚本加入到开机启动项里
[root@nginx tmp]# echo "/web/wwwroot/rsync.sh" >> /etc/rc.local
6.安装客户端配置:
安装 rsynctar zxvf rsync-3.0.9.tar.gz cd rsync-3.0.9./configure --prefix=/usr/local/rsyncmake make install7.创建密码文件,注意里面的信息要和主服务器一致cd /usr/local/rsync
echo "apabiuser:123456" >rsync.passwd8.给密码文件设置 600 权限,否则启动服务会报错
chmod 600 rsync.passwd 9.创建 rsync 配置文件vim rsync.conf
uid = nobody
gid = nobodyuse chroot = nomax connections = 10strict modes = yespid file = /var/run/rsyncd.pidlock file = /var/run/rsyncd.locklog file = /var/log/rsyncd.log[apabi]path = /web/wwwroot/comment = apabi fileignore errorsread only = nowrite only = nohosts allow = 192.168.1.139hosts deny = *list = falseuid = rootgid = rootauth users = apabiusersecrets file = /usr/local/rsync/rsync.passwd其中 apabi 是 server 服务端里的认证模块名称,需要与主服务器里的一致
把配置文件命名为 rsync.conf,放到/usr/local/rsync/目录里10.启动 rsync 服务/usr/local/rsync/bin/rsync --daemon --config=/usr/local/rsync/rsync.conf
11.把 rsync 服务加入开机启动项echo "/usr/local/rsync/bin/rsync --daemon --config=/usr/local/rsync/rsync.conf" >> /etc/rc.local12.在服务端 /web/wwwroot/ 下的文件:
#pwd
#ls
13.在客户端 /web/wwwroot 下的文件:
#pwd
#ls
我们在服务端创建一个测试文件 apabi20130803 看能不能自动同步到客户端
#echo "apabi test" > apabi20130803
我们在客户端查看可以看到apabi20130803文件,就说明成功了