svn服务器的搭建备份和还原和svnmanager的使用

一、svn服务端软件的安装和配置

1.安装svn版本库软件

# yum install -y subversion

2.建立svn版本库数据存储根目录svndata及用户、密码权限目录svnpasswd

# mkdir -pv /data/svndata
# mkdir -pv /data/svnpasswd

启动服务

# svnserve -d -r /data/svndata/

验证服务是否正常启动

# ps -ef | grep svn
# lsof -i :3690

建立项目管理库(测试用的)

# svnadmin create /data/svndata/sadoc

3.修改svn配置

# cd /data/svndata/sadoc/conf
# cp svnserve.conf svnserve.conf.bak

修改配置文件

# vim svnserve.conf

anon-access = none # 关闭匿名访问
auth-access = write
password-db = /data/svnpasswd/passwd
authz-db = /data/svnpasswd/authz
# cp passwd authz /data/svnpasswd/

# cd /data/svnpasswd
# chmod 700 *
[[email protected] svnpasswd]# ll
total 8
-rw-r--r-- 1 root root 1080 Sep 1 14:51 authz
-rw-r--r-- 1 root root 309 Sep 1 14:51 passwd

增加访问svn用户信息

# vim passwd
[users]
jack = jack2017
xiaoming = xiaoming

组信息

# vim authz
[groups]

sagroup = jack,xiaoming
[/]
jack = rw
xiaoming = r
@sagroup = r

二、配置SVN服务器的HTTP支持

svn作为独立服务器或借助apache服务的两种方式,可同时使用。
安装apache服务
# yum install -y httpd
(1)转换SVN服务器的密码
因为svn密码为明文,http不支持明文.需要生成一个webpasswd文件,首次创建new的webpass文件用-c。

#/application/svnpasswd
# htpasswd -c webpasswd jack
根据提示输入密码即可
jack2017

目录下会多一个webpasswd文件。
注意如果需要,多次加入用户,则用htpasswd -m
#htpasswd -m webpasswd tom

(2)配置apache

# yum install -y mod_dav_svn //使subversion与dav模块通信的功能

# yum install -y mod_authz_svn //实现权限控制功能

修改添加svn访问路径
# vim /etc/httpd/conf/httpd.conf

Listen 8080

在最后添加如下信息:

<Location /svn>
#开启svn
   DAV svn
#指定父目录位置,以后所有版本库都将存放在该目录下
   SVNParentPath /data/svndata/
#开启svn版本库父目录功能
   SVNListParentPath On
#指定授权模式
   AuthType Basic
#登陆窗口标题显示提示文字
   AuthName "Authorization Realm"
#指定访问版本库的账户和密码存放文件,该文件需要用apache的htpasswd命令创建
   AuthUserFile /data/svnpasswd/webpasswd
#指定访问版本库的用户和组的权限控制文件
   AuthzSVNAccessFile /data/svnpasswd/authz
#要求验证有效的用户才能访问
   Require valid-user
</Location>

重启
[[email protected] svnpasswd]# systemctl restart httpd

修改认证文件访问权限
# chmod 744 /data/svnpasswd/authz
若单独设置端口号,网址为http://IP地址:端口/svn

三、svn管理工具svnmanager的安装和配置

安装依赖
# yum install -y php mysql-server mod_dav_svn php-mysql php-pear php-mbstring

1.下载svnmanager解压并放置到/var/www/html/下
下载地址:http://prdownloads.sourceforge.net/svnmanager/svnmanager-1.10.zip

# unzip svnmanager-1.10.zip
# mv svnmanager-1.10 svnmanager
# mv svnmanager /var/www/html/

2.安装VersionControl_SVN

安装的php-pear包会有/usr/bin/pear命令,我们使用它来安装VersionControl_SVN,输入下面的命令:

[[email protected] html]# pear install --alldeps VersionControl_SVN-0.3.1
WARNING: channel "pear.php.net" has updated its protocols, use "pear channel-update pear.php.net" to update
WARNING: "pear/XML_Parser" is deprecated in favor of "pear/XML_Parser2"
downloading VersionControl_SVN-0.3.1.tgz ...
Starting to download VersionControl_SVN-0.3.1.tgz (34,038 bytes)
.........done: 34,038 bytes
downloading XML_Parser-1.3.7.tgz ...
Starting to download XML_Parser-1.3.7.tgz (13,339 bytes)
...done: 13,339 bytes
install ok: channel://pear.php.net/XML_Parser-1.3.7
install ok: channel://pear.php.net/VersionControl_SVN-0.3.1

3.向http.conf文件添加新内容

# vim /etc/httpd/conf/httpd.conf 添加如下内容是为了更安全:

<Directory "/var/www/html/svnmanager/">
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from all
</Directory>

4.创建svnmanager使用的mysql数据库

# service mysqld start
# mysql -uroot -p

mysql >create database svn;
mysql >grant all on svn.* to [email protected] identified by "svnmanagerpass";
mysql >flush privileges;
mysql >quit;

5.更改svnmanager的配置文件

# cd /var/www/html/svnmanager/
# cp config.php.linux config.php

修改配置文件
# vim config.php
改为如下内容:

<?php
$lang    = "en_US.UTF-8";

$htpassword_cmd = "/usr/bin/htpasswd";
$svn_cmd = "/usr/bin/svn";
$svnadmin_cmd = "/usr/bin/svnadmin";

// svn配置目录
$svn_config_dir    =    "/data/svndpasswd";
// svn的数据仓库目录
$svn_repos_loc = "/data/svndata";
// svn密码目录
$svn_passwd_file = "/data/svnpasswd/webpasswd";
// svn认证权限目录
$svn_access_file = "/data/svnpasswd/authz";

$svn_trash_loc    =    "";

$svnserve_user_file="";

$smtp_server = "smtp.mailserver.net";
// svnmanager连接数据库账号密码
$dsn    = "mysqli://svnmanager:[email protected]/svn";

// 访问svnmanager web的管理员账号密码
$admin_name    =    "admin";
$admin_temp_password    =    "admin";

?>

上方配置文件可能会缺项,每一项都要填好,务必保证全部文件文件夹有读写权限,可以都给apache

[[email protected] svnmanager]# chown -R apache.apache /var/www/html/

6.验证

重启apache,然后从浏览器里输入http://192.168.x.x/svnmanager

第一次会用提示All tables are missing.

Creating requried tables...

Please reload page!

刷新就好了,输入初始用户名密码。

进去后注册一个admin账户,然后admin用户就不可用了。使用新的admin账户管理。

注意:
通过admin登陆后无法看到 Repository Admin 这个菜单
需要添加用户并将某个用户定义成admin用该用户登录就可以正常管理仓库了

添加权限的时候报错:
failed to open stream: Permission denied (@line 211 in file /var/www/html/svnmanager/svnmanager/library/class.accessfile.php).

解决办法:
[[email protected] html]# chown -R apache.apache /data/svndata/
[[email protected] html]# chown -R apache.apache /data/svnpasswd/

SVN目录权限设置的命令,供参考:
chcon -R -h -t httpd_sys_content_t <SVN Root 目录>
[[email protected] svnpasswd]# chcon -R -h -t httpd_sys_content_t /data/svndata/

四、导入已经备份的svn数据

备份svn的脚本,注意是svnadmin hotcopy
# cat backup.sh

********************
#!/bin/bash

log="/data/svnbak/last_add_backed_up.log" # 添加日志文件,打印开始结束时间,方便查看执行时间
echo "********************"backup start time: `date -d today +"%Y-%m-%d %T"`"***************">> $log

cd /data/svnbak
mkdir `date +%F`
chmod 755 `date +%F`
cd `date +%F`
ls -l /home/svn-repos | awk ‘$1~"d"{print$8}‘ > list #注:/home/svn-repos是svn数据库的路径

for i in `cat list`
do
mkdir /data/svnbak/`date +%F`/$i #注:在另一个路径下创建与数据库相同的目录
done

SRCPATH=/home/svn-repos #定义仓库路径
DISTPATH=/data/svnbak/`date +%F` #定义备份数据存放的路径;
echo $DISTPATH
cat $DISTPATH/list | while read filename
do
svnadmin hotcopy $SRCPATH/$filename $DISTPATH/$filename --clean-logs #注:此处使用hotcopy开始备份
done

echo "-------------------backup end time: \"`date -d today +\"%Y-%m-%d %T\"`\"-------------------" >> $log
chown www-data.www-data $DISTPATH -R #注:备份之后修改成与原数据库相同的权限
#删除10天前的备份
chmod 777 -R /data/
find /data/svnbak -type d -mtime +7 -exec rm -rf {} \;

********************

将仓库的数据上传到新的svn数据服务器中
使用svnadmin hotcopy命令恢复
svnadmin hotcopy 备份项目目录 新的项目目录
[[email protected] ~]# svnadmin hotcopy /data/svnbak/2017-08-19/yunva-voice/ /data/svndata/yunva-voice

导入目录

给用户授权项目仓库的读写权限

给某个用户授权

测试是否ok
[[email protected]_es ~]# svn co http://1.1.1.1:8080/svn/yunva-voice/android-sdk/src/trunk/yaya /data/yaya

导入maven项目工程

时间: 2024-10-14 01:10:12

svn服务器的搭建备份和还原和svnmanager的使用的相关文章

linux(centos7)下SVN服务器如何搭建

linux(centos)下SVN服务器如何搭建?说到SVN服务器,想必大家都知道,可以是在LINUX下如何搭建SVN服务器呢?那么今天给大家分享一下linux(centos)搭建SVN服务器的思路! 虽然在windows上搭建SVN很简单,但是效能却不高,这当然是和linux相比了.然而在linux上搭建SVN却非常繁琐,所以今天这篇文章就来一步一步教您如何在Centos上搭建SVN. 安装步骤如下: 1.yum install subversion 2.输入rpm -ql subversio

linux下svn服务器的搭建

网上的教程实在是太恶心了,不是太老,就是有问题,刚参考的一篇文章也有问题.自己记录下来,以后用就方便了,现在一边重新安装一遍,一边记录.笔者亲测,今天是5月29号深夜. linux用的是centos6.2,yum install subversion,安装svn服务端.本篇操作均为root用户权限. 1.建立svn库目录. mkdir -p /opt/svndata/repos1 2.建立版本库 svnadmin create /opt/svndata/repos1 3.修改配置文件 (1)服务

svn服务器的搭建以及利用svn hook与web根目录同步

svn原理图示 2.SVN服务器的搭建 1.查看是否安装svn   rpm -qa | grep subversion   2.安装 yum install subversion 3.测试是否安装成功   /usr/bin/svnserve --version   如提示以下内容,说明已安装成功   --------------------------------------   svnserve,版本 1.6.11 (r934486)      编译于 Apr 11 2013,17:28:04

svn 服务器的搭建 on Ubuntu

Subversion 如何在Ubuntu下安装配置Subversion服务器.已经配置好,不过没有配置开机自启动, 需要的时候,使用如下命令开启svn服务svnserve -d  -r  /opt/svn 1.首先需要安装Subversion软件:sudo apt-get install subversion2.创建仓库svnadmin create /opt/svn/var/svn 为所创建仓库的路径,理论上可以是任何目录3.修改配置文件/opt/svn/conf/svnserve.conf#

SVN服务器本地搭建与使用

转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6623026.html  使用SVN进行代码管理,需要搭建服务端资源库,然后在使用SVN的电脑安装SVN客户端或者在Myeclipse集成SVN插件来下载资源库项目或提交项目修改.下面分步讲解: 1:下载SVN服务端软件并安装 下载地址:http://subversion.apache.org/packages.html 在最下面找到 VisualSVN ,点击进入下载页面,选择 VisualSVN serv

Windows Server 2008 R2下SVN服务器的搭建

Windows Server 2008 R2下SVN服务器的搭建 一.需要软件 1.服务器端 VisualSVN-Server-3.3.1-x64 2.客户端 TortoiseSVN-1.8.11.26392-x64-svn-1.8.13 3.客户端中文语言包 LanguagePack_1.8.11.26392-x64-zh_CN 二.安装 1.安装VisualSVN-Server 1 选择visualsvn server and management: 勾选Add Subversion com

linux svn服务器的搭建

一.修改SVN服务器的配置文件  安装 Yum install subversion 在库创建完成之后会在conf下会生成svnserve.conf, passwd, authz三个文件. 1)svnserve.conf anon-access = none auth-access = write password-db = passwd (svn密码文件,若有多个库,可将文件放到公共位置) authz-db = authz   (目录权限文件,建议同上) realm = /svn/projec

Linux(centos)下SVN服务器的搭建及简单配置和使用

Linux下Subversion(SVN服务器)的搭建: 1.安装Subversion #查看本机是否已安装subversion [[email protected] etc]# rpm -qa subversion [[email protected] etc]# #卸载旧版 [[email protected] etc]# yum remove subversion #安装SVN 为了便于以后操作同时安装其他服务  可以仅安装SVN [[email protected] etc]# yum

centos7下SVN服务器如何搭建

Centos7 搭建svn服务器 linux(centos)下SVN服务器如何搭建?说到SVN服务器,想必大家都知道,可以是在LINUX下如何搭建SVN服务器呢?那么今天给大家分享一下linux(centos)搭建SVN服务器的思路! 虽然在windows上搭建SVN很简单,但是效能却不高,这当然是和linux相比了.然而在linux上搭建SVN却非常繁琐,所以今天这篇文章就来一步一步教您如何在Centos上搭建SVN. 安装步骤如下: yum install subversion 查看安装位置