web主:192.168.1.139
web备:192.168.1.138
一、安装web主:
1.安装rsync
wget http://rsync.samba.org/ftp/rsync/src/rsync-3.0.9.tar.gz
tar zxvf rsync-3.0.9.tar.gz
cd rsync-3.0.9
./configure --prefix=/usr/local/rsync
make
make install
2.安装完毕后建立认证密码文件:
echo "123456">/usr/local/rsync/rsync.passwd
其中“123456”是我们设置的密码
为了安全起见我们把密码文件的权限设置成 600:
chmod 600 /usr/local/rsync/rsync.passwd
3.安装 inotify
wget http://github.com/downloads/rvoicilas/inotify-tools/inotify-tools-3.14.tar.gz
tar zxvf inotify-tools-3.14.tar.gz
cd inotify-tools-3.14
./configure --prefix=/usr/local/inotify
make && make install
4.创建 rsync 复制脚本
脚本的主要作用是是将 server 端的目录/tmp 里的内容,如果修改了(无论是添加、修改、删除文件)能
够通过 inotify 监控到,并通过 rsync 实时的同步给 client 的/tmp 里,下面是通过 shell 脚本实现的
#!/bin/bash
host=192.168.1.138
src=/web/wwwroot/
des=apabi
user=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 files
do
/usr/local/rsync/bin/rsync -vzrtopg --delete --progress --password-file=/usr/local/rsync/rsync.passwd $src $user@$host::$des
echo "${files} was rsynced" >>/var/log/rsync.log 2>&1
done
并给予 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.安装客户端配置:
安装 rsync
tar zxvf rsync-3.0.9.tar.gz
cd rsync-3.0.9
./configure --prefix=/usr/local/rsync
make
make install
7.创建密码文件,注意里面的信息要和主服务器一致
cd /usr/local/rsync
echo "apabiuser:123456" >rsync.passwd
8.给密码文件设置 600 权限,否则启动服务会报错
chmod 600 rsync.passwd
9.创建 rsync 配置文件
vim rsync.conf
uid = nobody
gid = nobody
use chroot = no
max connections = 10
strict modes = yes
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
log file = /var/log/rsyncd.log
[apabi]
path = /web/wwwroot/
comment = apabi file
ignore errors
read only = no
write only = no
hosts allow = 192.168.1.139
hosts deny = *
list = false
uid = root
gid = root
auth users = apabiuser
secrets 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.local
12.在服务端 /web/wwwroot/ 下的文件:
#pwd
#ls
13.在客户端 /web/wwwroot 下的文件:
#pwd
#ls
我们在服务端创建一个测试文件 apabi20130803 看能不能自动同步到客户端
#echo "apabi test" > apabi20130803
我们在客户端查看可以看到apabi20130803文件,就说明成功了