系统版本:CentOS 6.5 rsync版本:rsync-3.0.6-9 inotify-tools版本:inotify-tools-3.14
rsync工具与inotify机制相结合,可以实现触发式备份(实时同步)——只要原始位置的文档发生变化,则立即启动增量备份操作,这样就可以实现实时网站镜像功能
案例拓扑图:
案例环境:某公司在北京和上海两地各放置了一台网站服务器,分别应对南北大区内不断增长的客户访问需求,两台服务器的网站文档必须保持一致,同步链路已经通过VPN专用线路实现
一、配置服务器A
1.安装软件rsync、openssh和openssh-server(系统默认已经安装,如没有使用rpm包安装即可)
2.安装inotify-tools工具(提供inotifywait、inotifywatch辅助工具,用来监控、汇总改变情况)
3.构建ssh的密匙对验证
将密钥的公匙文件发送到服务器B的/tmp目录中
二、配置服务器B
1.安装软件openssh和openssh-server(系统默认是安装好的)
2.创建用于上传数据的用户
3.设置用户对目录的写权限(由于/var/www/html是网站目录,为了安全起见,不建议更改目录的归宿,可以通过设置文件或目录的ACL属性来实现rsync对目录的写权限)
4.导入公匙文本(之前服务器A上传过来的公匙文件,在/tmp/目录下)
首先创建用户rsync的公匙数据库目录/home/rsync/.ssh
然后将公匙文件导入到该数据库中,默认文件名为authorized_keys
5.开启sshd服务,并且注意防火墙规则
三、编写触发式同步脚本,在客户机(服务器A)上操作
1.实时监控工具inotifywait用法:
选项“-e”用来指定要监控哪些事件,选项“-m”表示持续监控,选项“-r”表示递归整个目录,选项“-q”简化输出信息;可以监控modify(修改)、create(创建)、move(移动)、delete(删除)、attrib(属性更改)等各种事件,一有变动马上输出结果
2.编写脚本,内容如下:
四、启动脚本文件,验证是否同步
1.在服务器A的/var/www/html目录下创建文件
2.查看服务器B的/var/www/html目录中是否同步
这样就达到了实时同步的效果
linux服务器 rsync + inotify 实时网站镜像
原文:http://928004321.blog.51cto.com/10707688/1747044