更新线上应用的时候,如果手动部署容易出错和遗漏,这里使用Linux自带的rsync功能,当应用在测试机测试ok,自动同步到正式机。这里我们把测试机称为Master,正式机称为Slave,应用从测试机同步到正式机,从Master同步到Slave。以下操作均在root账号下进行。
Master端配置:
1.vi /etc/rsyncd.conf
2.输入以下内容:
port = 873
uid = root
gid = root
use chroot = yes
read only = yes
#limit access to private LANs
hosts allow = YOURS
max connections =10
pid file = /var/run/rsyncd.pid
log file = /var/log/rsyncd.log
timeout = 300
[testlink]
path = /tmp/rsyntest
list = yes
auth users = root
uid = root
gid = root
exclude = *.xml *.properties *.log
secrets file = /etc/rsyncd.pass
read only = no
3.如果要排除某些文件可以在module节点下增加exclude = *.xml *.properties *.log 以空格分隔
4.mkdir -p /tmp/rsyntest
5.echo "this is test" > /tmp/rsyntest/test.test
6.echo "root:123456" > /etc/rsyncd.pass,这里root可以是其他Master的用户,但是必须是系统用户。
7.chmod 600 /etc/rsyncd.pass
8.启动rsync命令: rsync --daemon --config=/etc/rsyncd.conf;
停止rsync命令:cat /var/run/rsyncd.pid | xargs kill -9 && rm -rf /var/run/rsyncd.pid。
使用启动命令,启动Master的rsync服务。
9.记得在Master上对Slave机器开启iptables
-A INPUT -m state --state NEW -m tcp -p tcp --dport 873 -s SlaveIPS -j ACCEPT
Slave端配置测试
1.echo "123456" > /etc/rsyncd.pass
2.chmod 600 /etc/rsyncd.pass
3.cd /tmp/rsyntest
4.注意Slave端的/etc/rsyncd.pass只有密码,没有用户名root!!!
否则在
指定pass文件运行时,rsync -vrtup --delete --password-file=/etc/rsyncd.pass root@masterIP::testlink /tmp/rsyntest,会报以下错误:
@ERROR: auth failed on module testlink
rsync error: error starting client-server protocol (code 5) at main.c(1527) [receiver=3.0.6]
在Master端的日志文件/var/log/rsyncd.log,有以下报错内容:
2012/04/09 15:07:48 [28566] name lookup failed for slaveIP: Name or service not known
2012/04/09 15:07:48 [28566] connect from UNKNOWN (slaveIP)
2012/04/09 15:07:48 [28566] auth failed on module testlink from unknown (slaveIP): password mismatch
5.如果Slave端的/etc/rsyncd.pass和Master端一样,则只能按照以下不指定pass文件的方式运行:
rsync -vrtup --delete root@masterIP::testlink /tmp/rsyntest 提示输入密码,输入/etc/rsyncd.pass中配置的密码123456,会有以下输出:
receiving incremental file list
./
test.test
sent 80 bytes received 183 bytes 75.14 bytes/sec
total size is 30 speedup is 0.11
6.同步完毕在Master和Slave的对应目录分别执行 ls -alR|grep "^[-d]"|wc,看看文件夹和文件数是否一致。
rsyncd.conf的配置说明和rsync命令详解:
http://hi.baidu.com/xc_hai/blog/item/0ee61e8e321017f2503d9288.html
分享到:
相关推荐
rsync 是用于替代 rcp 的一个工具,rsync 使用所谓的 rsync算法 进行数据同步,这种算法只传送两个文件 的不同部分,而不是每次都整份传送,因此速度相当快。 您可以参考 How Rsync Works A Practical Overview ...
本篇文章详细介绍了linux下使用rsync同步目录,使用rsync同步后可以保持目录的一致性,有需要的可以了解一下。
Rsync实现文件备份同步,定时备份,同步数据,如果源地址文件删除,目标地址也会删除,我们公司就用rsync同步图片资源,很实用。
在Windows上使用rsync同步文件。
rsync同步的艺术,学习rsync的很好的例子
linux 下rsync文件夹同步配置,可以定时。
亲测,有疑问可以加我,共同讨论学习!
在互联网中,Windows环境中使用Rsync远程同步数据;使用快速增量备份工具Remote Sync可以远程同步,支持本地复制,或者与其他rsync主机同步。
ubuntu rsync中文乱码 window ubuntu rsync同步中文乱码.docx
FreeBSD Rsync同步学习与配置全过程.doc
rsync同步指定目录 rsync使用–include参数与–exclude参数来实现同步指定目录,并且–exclude目录放在后面。 例如: linux上文件目录 代码如下: ls /usr/local/apache/htdocs/site aa bb cc dd ee .. zz 只想同步...
rsync使用所谓的”rsync算法”,提供一个非常快速的档案传输方法, 使local和远端二部主机之间的档案达到同步,它主要是传送二个档案的异动部份,而非每次都整份传送, 因此速度相当地快. rsync它可以搭配rsh或ssh,也...
rsync远程同步
Rsync+ssh双机同步测试及问题解决
图解rsync数据同步部署文档.docx
rsync(remote synchronize)是一个远程数据同步工具,可通过LAN/WAN快速同步多台主机间的文件,也可以使用 rsync 同步本地硬盘中的不同目录。 rsync和scp的区别: rsync支持增量同步,不管是文件数量的新增还是文件...
rsync数据同步手册.pdf
最近需求想定期备份内部重要的服务器数据到存储里面,接下来通过本文给大家分享centos7下rsync+crontab定期同步备份,感兴趣的朋友跟随小编一起看看吧
平台前端tengine作为代理,后端两台IIS 7提供应用,为减少IIS的压力,使用两台IIS 7作为负载均衡,因此需要保证后端两台IIS 7的配置文件保持一致,在更新服务器时,在一台服务器上更新文件自动同步至另一台。