rsync主动同步代码

By | 2012年1月16日

目前项目是由多台机器在提供的,他们的代码都一致,但是我又不想写crontab去定时同步代码,因为万一服务器之间连接稍有故障,负载就会飙升。而且我的代码更新并不会太频繁,所以设计了以下方案:
1.拿一台机器当工作机
2.需要同步代码的前端机器都搭建rsync服务端
3.我同步代码到工作机,执行一个shell脚本,代码同步到前端机

rsync的服务端即前端机配置如下
建立一个/etc/rsyncd.conf文件,内容

新建一个/etc/rsync.pas文件,内容为“用户名:密码”

可以看到,我的其中一台前端需要提供app和www这两个二级域名的服务
启动前端机的rsync服务/usr/bin/rsync –daemon –config=/etc/rsyncd.conf 可以把这句写进/etc/rc.local

然后在工作机上建立与前端机相同的rsync.pas文件
在来个同步脚本sync_app

给予执行权限chmod +x /opt/sbin/sync_app

你可以看到我排除了一些文件不进行同步,这个exclude文件内容如下

从需要同步的目录算起,下面哪些不需要同步,写上就行,一行一个文件或者目录

这样,当我更改代码以后,先上传到我的工作机,然后执行/opt/sbin/sync_app就会将代码发布到所有前端提供服务的机器上了

发表评论

电子邮件地址不会被公开。 必填项已用*标注