环境:源端windowsserver2008,目标端:centos7.9
总体思路为:源端导出所有项目,目标端导入项目,最后配置好权限文件。
1、源端导出项目文件
编写svn_dump.bat脚本批量导出项目数据及配置文件。
d:
cd svn
dir /s /b |findstr "conf\authz" > f:\data\svn_dir.txt
f:
cd data\
for /F "tokens=3,5 delims=\" %%a in (f:\data\svn_dir.txt) do (
svnadmin dump %%a > f:\data\%%a.dump
copy d:\svn\%%a\conf\%%b f:\data\conf\%%a--%%b
)
dir /s /b |findstr "conf\passwd" > f:\data\svn_dir.txt
for /F "tokens=3,5 delims=\" %%a in (f:\data\svn_dir.txt) do (
copy d:\svn\%%a\conf\%%b f:\data\conf\%%a--%%b
)
pause
2、上传到目标端,并安装svn服务
yum install subversion
mkdir svn
svnadmin create /home/git/svn/cs
我们这里特别关注一下conf文件夹,这个是存放配置文件的
其中:
authz 是权限控制文件
passwd 是帐号密码文件
svnserve.conf 是SVN服务配置文件
[root@localhost conf]# vi passwd
[users]
test1=123456
test2=123456
[root@localhost conf]# vi authz
[groups]
group1 = admin
group2 = test1,test2
[/]
@group1 = rw
@group2 = r
* =
[root@localhost conf]# vi svnserve.conf
打开下面的5个注释
anon-access = none #匿名用户可读read,不可读
auth-access = write #授权用户可写
password-db = passwd #使用哪个文件作为账号文件
authz-db = authz #使用哪个文件作为权限文件
realm = /home/git/svn/cs # 认证空间名,版本库所在目录
3、svn启动与停止
[root@localhost conf]# svnserve -d -r /home/git/svn/
[root@localhost conf]#killall svnserve
4、批量导入
vim abc_svn_pl.sh
#!/bin/bash
. /etc/profile
cd /home/git/qy_shell
cat svn_dir.txt |grep -v ".bak" conf_pw.txt
v_txt=/home/git/conf_pw.txt
count=0
while read line
do
let count++
echo "---------正在执行$line------------"
v_na=$(echo $line |cut -d '\' -f 3)
v_pa=/home/git/svn/${v_na}/conf
svnadmin create ${v_na}
svnadmin load ${v_na} < /home/git/svn_dump/${v_na}.dump
cp /home/git/svnserve.conf ${v_pa}/
cat /home/git/qy_shell/conf/${v_na}--passwd > ${v_pa}/passwd
cat /home/git/qy_shell/conf/${v_na}--authz > ${v_pa}/authz
dos2unix ${v_pa}/passwd
dos2unix ${v_pa}/authz
done < ${v_txt}
5、客户端验证
svn://xxx.xxx.xxxx.xxx:3690/cs
#输入认证用户密码登录后访问
「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。




