server端安装rsync inotify-tools
[root@nginx src]# tar zxvf rsync-3.0.9.tar.gz
[root@nginx src]# cd rsync-3.0.9[root@nginx rsync-3.0.9]# ./configure --prefix=/usr/local/rsync [root@nginx rsync-3.0.9]# make && make install 建立密码文件[root@nginx ~]# echo "NteS0btuJ7rCg" >> /etc/server.pass [root@nginx ~]# cat /etc/server.pass NteS0btuJ7rCg (另一台机器www密码 为了权限及文件所有者考虑server端与client的www账号uid gid 均一样)[root@nginx rsync]# chmod 600 /etc/server.pass[root@nginx src]# tar zxvf inotify-tools-3.14.tar.gz
[root@nginx src]# cd inotify-tools-3.14 [root@nginx inotify-tools-3.14]# ./configure --prefix=/usr/local/inotify [root@nginx inotify-tools-3.14]# make && make install 创建rsync复制脚本此项功能主要是将server端的目录/www里的内容,如果修改了(无论是添加、修改、删除文件)能够通过inotify监控到,并通过rsync实时的同步给client的/www里,下面是通过shell脚本实现的#!/bin/bash
src=/www/des=wwwip=192.168.1.251/usr/local/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 $src --password-file=/etc/server.pass &&echo "$src was rsyncd" >>/tmp/rsync.log 2>&1done后台运行这个脚本 nohup sh /tmp/rsync.sh
我们还可以把rsync.sh脚本加入到开机启动项里
[root@nginx tmp]# echo "/tmp/rsync.sh" >> /etc/rc.local客户端只安装rsync 与服务器端安装一样
[root@nginx src]# tar zxvf rsync-3.0.9.tar.gz
[root@nginx src]# cd rsync-3.0.9[root@nginx rsync-3.0.9]# ./configure --prefix=/usr/local/rsync [root@nginx rsync-3.0.9]# make && make install 建立密码文件[root@web2 ~]# touch /etc/server.pass [root@web2 www]# cat /etc/server.pass www:NteS0btuJ7rCg[root@web2 rsync]# chmod 600 /etc/server.pass 在rsync的安装路径里面添加配置文件rsyncd.confuid = rootgid = rootuser chroot = nomax connetction = 200timeout = 600pid file = /var/run/rsyncd.pidlock file = /var/run/rsyncd.locklog file = /var/run/rsyncd.log[www]path = /wwwignore errorsread only = nolist = noauth user = wwwsecrets file = /etc/rsyncd.password启动客户端rsync服务
/usr/local/rsync/bin/rsync --daemon --config=/usr/local/rsync/rsyncd.conf我们可以把rsync脚本加入到开机启动项里[root@nginx-backup rsync]# echo "/usr/local/rsync/bin/rsync --daemon --config=/usr/local/rsync/rsync.conf" >> /etc/rc.local客户端关闭防火墙或者添加防火墙规则
iptables -I INPUT -p tcp --dport 873 -j ACCEPT可进行测试在server端修改文件 修改权限 客户端均改变