rsync相关知识详见:http://sookk8.blog.51cto.com/455855/328076
测试环境:
版本库所在服务器:
192.168.10.62
客户服务器:
192.168.10.63
192.168.10.242
1,架构:
2.shell即svn钩子文件 :实现自动检出和自动更新到不同服务器
[root@localhost svn]# vi /opt/svndata/yaoyao_v0/hooks/post-commit
#!/bin/sh
SVN=/usr/local/svn/bin/svn
WEB=/home/svn
$SVN update $WEB --username chenjuan --password 123456
SRCDIR=/home/svn
MOD=svn
IP_LIST=(192.168.10.63 192.168.10.242)
for i in ${IP_LIST[*]}
do
/usr/bin/rsync -vzrtopg --delete --progress --password-file=/etc/rsync.pas /home/svn/ chenjuan@$i::svn
done
~
1. rsyns配置(192.168.10.63,192.168.10.242)
#vi /etc/xinetd.d/rsync
把原来的YES改成NO
service rsync
{
disable = no
socket_type = stream
wait = no
user = root
server = /usr/bin/rsync
server_args = --daemon
log_on_failure += USERID
}
随系统启动RSYNC
#chkconfig rsync on
2、配置/etc/rsyncd.conf(需要手动生成)
rsyncd.conf的参数写在上边就是全局参数和写在模块里的就是模块参数
[root@userauth svn]# vi /etc/rsyncd.conf
uid = root
gid = root
use chroot = no
max connections = 4
strict modes =yes
port = 873
[svn]
path = /home/svn/
comment = This is a test
ignore errors
read only = no
list = no
auth users = chenjuan
secrets file = /etc/rsync.pas
hosts allow = 192.168.10.63,192.168.10.62
hosts deny = 0.0.0.0/0
#transfer logging = yes
3、配置rsync密码(在上边的配置文件中已经写好路径) /etc/rsync.pas(名字随便写,只要和上边配置文件里的一致即可),格式(一行一个用户)
账号:密码
[root@userauth svn]# vi /etc/rsync.pas
chenjuan:123456
#cd /etc
#chown root.root rsync.pas
#chmod 600 rsync.pas
3.rsyncd.motd(配置欢迎信息,可有可无)
# vi /etc/rsyncd.motd
rsyncd.motd记录了rsync服务的欢迎信息,你可以在其中输入任何文本信息,如:
Welcome to use the rsync services!
4、让配置生效
#service xinetd restart
若报错:xinetd: unrecognized service
就安装:[root@userauth etc]# yum -y install xinetd
启动rsync server
RSYNC服务端启动的两种方法
1、启动rsync服务端(独立启动)
#/usr/bin/rsync --daemon
# /etc/rc.d/init.d/xinetd reload
在各种操作系统中,rc文件存放位置不尽相同,可以修改使系统启动时把rsync --daemon加载进去。
#vi /etc/rc.local
加入一行/usr/bin/rsync --daemon
五.检查rsync
#netstat -a | grep rsync
tcp 0 0 0.0.0.0:873 0.0.0.0:* LISTEN
六.配置rsync client (192.168.10.62)
1、设定密码
#vi /etc/rsync.pas
123456
修改权限
#cd /etc
#chown root.root rsync.pas
#chmod 600 rsync.pas
向rsyns服务(63,242)提交文件。
[root@localhost svn]# /usr/bin/rsync -vzrtopg --progress --delete --password-file=/etc/rsync.pas /home/svn/ chenjuan@192.168.10.63::svn
[root@localhost svn]# /usr/bin/rsync -vzrtopg --progress --delete --password-file=/etc/rsync.pas /home/svn/ chenjuan@192.168.10.242::svn