案例背景:
随着公司应用不断的增加,代码更新的更加频繁,每次更新完后都要把主服务器上的代码手动同步到备份服务器上。曾经想过用计划任务去定时同步代码,但是随着数据量的加大,每次同步的时候rsync都要进行完整的扫描,耗时过长。
后来公司又上一套系统,用到了tomcat的集群,这就更需要集群间web内容的一致。偶尔有一天看到新浪微博里提到web服务器使用的是rsync+inotify触发更新,感觉挺不错。
Inotify-tools可以监控文件系统下文件的各种变化情况,需要安装这个第三方的工具。
1.说明
服务器端(应用代码更新):192.168.0.27
备份服务器:192.168.0.39
web目录:/opt/tomcat_xx/webapps/ROOT
原理:由192.168.0.27上inotify服务监测文件是否有更新,如果有更新(修改,删除,新建)inotify就会触发通过rsync命令将更新的文件推向备份服务器
2.安装安装inotify-tools
3.编译同步脚本
vim /usr/local/bin/rsync.sh
//src为源端被同步的目录,dst为目标端备份服务器的目录,dhost为备份服务器地址。
4.ssh单向无密码访问
为了使用rsync进行同步拷贝的时候不用输入目标服务器的登录密码,所以使用公钥的方式,当然也有人喜欢使用rsync的密码文件方式(更安全)。
源和目标端都操作 :
ssh-keygen -t rsa
源端:
cd .ssh/
scp id_rsa.pub 192.168.0.39:/root/
备份机操作--192.168.0.39:
cat id_rsa.pub >> ~/.ssh/authorized_keys
5.执行脚本
让脚本在后台运行:
6.加入开机启动
您可能感兴趣的文章:
rsync与inotify实现数据同步的实例分享
单向实时同步文件rsync+inotify-tools的配置教程
rsync+inotify 文件实时同步的配置详解
inotify+rsync配置实例详解
rsync+inotify 文件同步配置实例
inotify-tools+rsync实时同步文件的配置方法
使用rsync与inotify实现网站程序的主从同步
Inotify自动监控文件并同步到服务器的shell脚本
使用inotify+csync2实现文件的双向同步
使用inotifywait实现目录监控