这次做业务迁移,要从一个云厂商迁移到某云厂商,之前每天到全备svn排到用场了,需要搭建一个全新到svn服务并要做迁移,并实现我们开发机到时时代码同步
一、svn备份有很多种,优劣都不同,百度可查,我采用到是dump每天凌晨会执行脚本备份数据
svnadmin dump /path/svn >/path/backup_svn/bak.svn
二、(新)svn服务器搭建配置,配置文件列出
yum install subversion -y #yum安装mkdir -p /innsvnadmin create /inn/svn/ #创建版本库svnserve -d -r /inn/svn/ #指定目录启动svnserver服务//会生成相关配置文件ll /inn/svn/conf-rw-r--r-- 1 root root 1833 May 2 14:47 authz #指定用户组,用户权限,目录信息等-rw-r--r-- 1 root root 570 May 2 14:54 passwd #创建等用户以及密码-rw-r--r-- 1 root root 2421 Apr 26 11:04 svnserve.conf #全局配置文件,指定相关文件指定等目录
[root@yunwei-169 conf]# cat authz [groups]web = aaa,bbbtesting = ceshi[/]@web = rw@testing = r[root@yunwei-169 conf]# #web组有用户 aaa.bbb #web用户对目录有读写权限#测试组对相关目录只读
[root@yunwei-169 conf]# cat passwd[users]aaa = 123123bbb = 321321ceshi = 123333[root@yunwei-169 conf]#
[root@yunwei-169 conf]# cat svnserve.conf[general]anon-access = noneauth-access = writepassword-db = /inn/svn/conf/passwdauthz-db = /inn/svn/conf/authzrealm = beizhu[root@yunwei-169 conf]#
三、拷贝备份文件到本服务器 可以使用scp ftp等方式传输
四、恢复拷贝到文件
svnadmin load /inn/svn < bak.svn
五、利用svn钩子(hooks)实现测试机代码到时时同步
svn安装目录下修改配置文件即可实现,不需要安装插件等。
[root@yunwei-169 svn]# cd hooks/[root@yunwei-169 hooks]# lltotal 52-rw-r--r-- 1 root root 1188 May 8 18:22 1-rw-r--r-- 1 root root 353 May 9 11:52 post-commit.log-rw-r--r-- 1 root root 205 May 9 11:52 post-commit_project.log-rw-r--r-- 1 root root 1977 Apr 26 11:00 post-commit.tmpl-rw-r--r-- 1 root root 1638 Apr 26 11:00 post-lock.tmpl-rw-r--r-- 1 root root 2289 Apr 26 11:00 post-revprop-change.tmpl-rw-r--r-- 1 root root 1567 Apr 26 11:00 post-unlock.tmpl-rw-r--r-- 1 root root 3426 Apr 26 11:00 pre-commit.tmpl-rw-r--r-- 1 root root 2410 Apr 26 11:00 pre-lock.tmpl-rw-r--r-- 1 root root 2786 Apr 26 11:00 pre-revprop-change.tmpl-rw-r--r-- 1 root root 2100 Apr 26 11:00 pre-unlock.tmpl-rw-r--r-- 1 root root 2780 Apr 26 11:00 start-commit.tmpl[root@yunwei-169 hooks]# cp post-commit.tmpl post-commit[root@yunwei-169 hooks]# chmod 777 post-commit[root@yunwei-169 hooks]# cat post-commit #将内容清空#!/bin/shecho "hello" >> /inn/svn/hooks/post-commit.logREPOS="$1"REV="$2"export LANG=zh_CN.UTF-8/usr/bin/svn update /inn/www/hotel >> /inn/svn/hooks/post-commit.log/usr/bin/svn update /inn/www/project >> /inn/svn/hooks/post-commit_project.logecho `date`,`whoami`,$REPOS,$REV[root@yunwei-169 hooks]#
如何解决svn Authorization failed错误
权限问题或者目录问题,排查上面到三个配置文件。。。