svn服务器 备份,迁移,部署方案
这次做业务迁移,要从一个云厂商迁移到某云厂商,之前每天到全备svn排到用场了,需要搭建一个全新到svn服务并要做迁移,并实现我们开发机到时时代码同步
一、svn备份有很多种,优劣都不同,百度可查,我采用到是dump每天凌晨会执行脚本备份数据
svnadmin dump /path/svn >/path/backup_svn/bak.svn
二、(新)svn服务器搭建配置,配置文件列出
yum install subversion -y #yum安装 mkdir -p /inn svnadmin 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,bbb testing = ceshi [/] @web = rw @testing = r [root@yunwei-169 conf]# #web组有用户 aaa.bbb #web用户对目录有读写权限 #测试组对相关目录只读
[root@yunwei-169 conf]# cat passwd [users] aaa = 123123 bbb = 321321 ceshi = 123333 [root@yunwei-169 conf]#
[root@yunwei-169 conf]# cat svnserve.conf [general] anon-access = none auth-access = write password-db = /inn/svn/conf/passwd authz-db = /inn/svn/conf/authz realm = 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]# ll total 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/sh echo "hello" >> /inn/svn/hooks/post-commit.log REPOS="$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.log echo `date`,`whoami`,$REPOS,$REV [root@yunwei-169 hooks]#
如何解决svn Authorization failed错误
权限问题或者目录问题,排查上面到三个配置文件。。。
好记性不如烂笔头-_-