单项实时同步 rsync+inotify-tools

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=www
ip=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 www@$ip::$des --password-file=/etc/server.pass &&
echo "$src was rsyncd" >>/tmp/rsync.log 2>&1
done

后台运行这个脚本 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.conf
uid = root
gid = root
user chroot = no
max connetction = 200
timeout = 600
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
log file = /var/run/rsyncd.log
[www]
path = /www
ignore errors
read only = no
list = no
auth user = www
secrets 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端修改文件 修改权限 客户端均改变  

 

 

你可能感兴趣的:(单项实时同步)