rsync主动同步代码
浏览:3129次 出处信息
目前项目是由多台机器在提供的,他们的代码都一致,但是我又不想写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就会将代码发布到所有前端提供服务的机器上了
1.拿一台机器当工作机
2.需要同步代码的前端机器都搭建rsync服务端
3.我同步代码到工作机,执行一个shell脚本,代码同步到前端机
rsync的服务器配置如下
建立一个/etc/rsyncd.conf文件,内容
uid = root
gid = root
use chroot = no
max connections = 4
strict modes =yes
port = 873
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
log file = /var/log/rsyncd.log
[app]
path = /data/www/xs8.cn/app.xs8.cn/
comment = app.xs8.cn
ignore errors
read only = no
list = yes
secrets file = /etc/rsync.pas
hosts allow = 10.0.0.100
hosts deny = 0.0.0.0/0
[www]
path = /data/www/xs8.cn/www.xs8.cn/
comment = www.xs8.cn
ignore errors
read only = no
list = yes
secrets file = /etc/rsync.pas
hosts allow = 10.0.0.100
hosts deny = 0.0.0.0/0
gid = root
use chroot = no
max connections = 4
strict modes =yes
port = 873
pid file = /var/run/rsyncd.pid
lock file = /var/run/rsyncd.lock
log file = /var/log/rsyncd.log
[app]
path = /data/www/xs8.cn/app.xs8.cn/
comment = app.xs8.cn
ignore errors
read only = no
list = yes
secrets file = /etc/rsync.pas
hosts allow = 10.0.0.100
hosts deny = 0.0.0.0/0
[www]
path = /data/www/xs8.cn/www.xs8.cn/
comment = www.xs8.cn
ignore errors
read only = no
list = yes
secrets file = /etc/rsync.pas
hosts allow = 10.0.0.100
hosts deny = 0.0.0.0/0
新建一个/etc/rsync.pas文件,内容为“用户名:密码”
xs8:xs8rsync
可以看到,我的其中一台前端需要提供app和www这两个二级域名的服务
启动前端机的rsync服务/usr/bin/rsync --daemon --config=/etc/rsyncd.conf 可以把这句写进/etc/rc.local
然后在工作机上建立与前端机相同的rsync.pas文件
在来个同步脚本sync_app
/usr/bin/rsync -vzrtopg --progress --password-file=/etc/rsync.pas --exclude-from=/data/www/xs8.cn/app.xs8.cn/exclude.txt /data/www/xs8.cn/app.xs8.cn/ xs8@10.0.0.11::app
/usr/bin/rsync -vzrtopg --progress --password-file=/etc/rsync.pas --exclude-from=/data/www/xs8.cn/app.xs8.cn/exclude.txt /data/www/xs8.cn/app.xs8.cn/ xs8@10.0.0.12::app
/usr/bin/rsync -vzrtopg --progress --password-file=/etc/rsync.pas --exclude-from=/data/www/xs8.cn/app.xs8.cn/exclude.txt /data/www/xs8.cn/app.xs8.cn/ xs8@10.0.0.12::app
给予执行权限chmod +x /opt/sbin/sync_app
你可以看到我排除了一些文件不进行同步,这个exclude文件内容如下
exclude.txt
application/cache
application/logs
application/cache
application/logs
从需要同步的目录算起,下面哪些不需要同步,写上就行,一行一个文件或者目录
这样,当我更改代码以后,先上传到我的工作机,然后执行/opt/sbin/sync_app就会将代码发布到所有前端提供服务的机器上了
建议继续学习:
- 关于IO的同步,异步,阻塞,非阻塞 (阅读:14482)
- rsync同步的艺术 (阅读:8301)
- Linux探索:一次删除一百万个文件的最快方法 (阅读:5831)
- mysql 主从同步原理 (阅读:5713)
- 消息分发的同步均衡策略 (阅读:5035)
- rsync 的核心算法 (阅读:4495)
- Dropbox差异同步算法rsync及其改进算法原理 (阅读:4330)
- rsync自动输入密码实现数据备份 (阅读:4084)
- 五款最好的免费同步软件 (阅读:3861)
- 大量小文件的实时同步方案 (阅读:3730)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:使用strace工具故障排查的5种简单方法
后一篇:storm集群的监控 >>
文章信息
- 作者:废墟 来源: 废墟
- 标签: rsync 同步
- 发布时间:2012-01-24 13:50:41
建议继续学习
近3天十大热文
- [54] android 开发入门
- [53] IOS安全–浅谈关于IOS加固的几种方法
- [51] Oracle MTS模式下 进程地址与会话信
- [51] 图书馆的世界纪录
- [50] 如何拿下简短的域名
- [50] Go Reflect 性能
- [48] 读书笔记-壹百度:百度十年千倍的29条法则
- [47] 【社会化设计】自我(self)部分――欢迎区
- [38] 程序员技术练级攻略
- [31] 视觉调整-设计师 vs. 逻辑