rsync主动同步代码
浏览:3182次 出处信息
目前项目是由多台机器在提供的,他们的代码都一致,但是我又不想写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的同步,异步,阻塞,非阻塞 (阅读:14662)
- rsync同步的艺术 (阅读:8436)
- Linux探索:一次删除一百万个文件的最快方法 (阅读:5977)
- mysql 主从同步原理 (阅读:5758)
- 消息分发的同步均衡策略 (阅读:5098)
- rsync 的核心算法 (阅读:4587)
- Dropbox差异同步算法rsync及其改进算法原理 (阅读:4408)
- rsync自动输入密码实现数据备份 (阅读:4203)
- 五款最好的免费同步软件 (阅读:3933)
- 大量小文件的实时同步方案 (阅读:3789)
QQ技术交流群:445447336,欢迎加入!
扫一扫订阅我的微信号:IT技术博客大学习
扫一扫订阅我的微信号:IT技术博客大学习
<< 前一篇:使用strace工具故障排查的5种简单方法
后一篇:storm集群的监控 >>
文章信息
- 作者:废墟 来源: 废墟
- 标签: rsync 同步
- 发布时间:2012-01-24 13:50:41
建议继续学习
近3天十大热文
-
[83] memory prefetch浅析
-
[52] 转载:cassandra读写性能原理分析
-
[51] 基本排序算法的PHP实现
-
[51] 深入浅出cassandra 4 数据一致性问
-
[45] 字符引用和空白字符
-
[42] MySQL半同步存在的问题
-
[40] javascript插入样式
-
[39] 获取Dom元素的X/Y坐标
-
[39] Inline Form Labels
-
[36] JS中如何判断字符串类型的数字