Chinaunix首页 | 论坛 | 博客
  • 博客访问: 449667
  • 博文数量: 141
  • 博客积分: 211
  • 博客等级: 入伍新兵
  • 技术积分: 1049
  • 用 户 组: 普通用户
  • 注册时间: 2010-09-17 16:25
个人简介

如此经年,望尽千帆。

文章分类

全部博文(141)

文章存档

2014年(73)

2013年(65)

2012年(3)

我的朋友

分类: 系统运维

2013-09-09 06:40:01

本文介绍下,在linux下,使用rsync+inotify-tools配置单向文件实时同步的方法,有需要的朋友参考下。 本节介绍的内容为:使用rsync+inotify-tools配置文件单向同步的方法。 一,server端安装rsync inotify-tools 复制代码代码示例:[root@ 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里。
实现此操作的: 

#!/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端修改文件、修改权限等,客户端均跟着发生变化。本文出处参考:

阅读(1329) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~