svn服务器的搭建备份和还原和svnmanager的使用
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 :
建立项目管理库(测试用的)
# 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 *
[root@u04elk svnpasswd]# ll
total
-rw-r--r-- root root Sep : authz
-rw-r--r-- root root Sep : 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>
重启
[root@u04elk 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,输入下面的命令:
[root@u04elk html]# pear install --alldeps VersionControl_SVN-0.3.
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..tgz ...
Starting to download VersionControl_SVN-0.3..tgz (, bytes)
.........done: , bytes
downloading XML_Parser-1.3..tgz ...
Starting to download XML_Parser-1.3..tgz (, bytes)
...done: , 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 svnmanager@localhost 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:svnmanagerpass@localhost/svn"; // 访问svnmanager web的管理员账号密码
$admin_name = "admin";
$admin_temp_password = "admin"; ?>
上方配置文件可能会缺项,每一项都要填好,务必保证全部文件文件夹有读写权限,可以都给apache
[root@u04elk 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).
解决办法:
[root@u04elk html]# chown -R apache.apache /data/svndata/
[root@u04elk html]# chown -R apache.apache /data/svnpasswd/
SVN目录权限设置的命令,供参考:
chcon -R -h -t httpd_sys_content_t <SVN Root 目录>
[root@u04elk 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 备份项目目录 新的项目目录
[root@u04elk ~]# svnadmin hotcopy /data/svnbak/2017-08-19/yunva-voice/ /data/svndata/yunva-voice
导入目录
给用户授权项目仓库的读写权限
给某个用户授权
测试是否ok
[root@test9_es ~]# svn co http://1.1.1.1:8080/svn/yunva-voice/android-sdk/src/trunk/yaya /data/yaya
导入maven项目工程
svn服务器的搭建备份和还原和svnmanager的使用的更多相关文章
- Ubuntu SVN服务器的搭建与配置(转)
Ubuntu SVN服务器的搭建与配置 一. 安装 sudo apt-get install subversion sudo apt-get install libapache2-sv ...
- linux(centos7)下SVN服务器如何搭建
linux(centos)下SVN服务器如何搭建?说到SVN服务器,想必大家都知道,可以是在LINUX下如何搭建SVN服务器呢?那么今天给大家分享一下linux(centos)搭建SVN服务器的思路! ...
- SVN服务器本地搭建与使用
转载请注明原文地址:http://www.cnblogs.com/ygj0930/p/6623026.html 使用SVN进行代码管理,需要搭建服务端资源库,然后在使用SVN的电脑安装SVN客户端或 ...
- centos7下SVN服务器如何搭建
Centos7 搭建svn服务器 linux(centos)下SVN服务器如何搭建?说到SVN服务器,想必大家都知道,可以是在LINUX下如何搭建SVN服务器呢?那么今天给大家分享一下linux(ce ...
- svn 服务器的搭建以及客户端的使用
1.svn 服务器的搭建以及客户端的使用,安装见下面的博客 https://blog.csdn.net/zh123456zh789/article/details/80921179 说明:服务器只是用 ...
- SVN服务器几种备份策略---重点svnsync备份---OK
配置管理的一个重要使命是保证数据的安全性,防止服务器应硬盘损坏.误操作造成数据无法恢复的灾难性后果.因此制定一个完整的备份策略非常重要. 一般来说,备份策略应规定如下几部分内容:备份频度.备份方式.备 ...
- Windows下SVN服务器的搭建步骤
1.下载svn服务端和客户端 服务端VISUALSVN SERVER:https://www.visualsvn.com/ 客户端TortoiseSVN:https://tortoisesvn.net ...
- SVN服务器的搭建和使用
VisualSVN Server和TortoiseSVN的下载,安装,汉化:SVN服务器搭建和使用(一) 如何使用VisualSVN Server建立版本库,以及TortoiseSVN的使用:SVN服 ...
- svn服务器的搭建
subversion是优秀的版本管理工具,下面简单介绍svn服务器和客户端的下载.安装.搭建以及使用 一:下载svn服务器和客户端 1:下载地址服务器下载地址:http://subversion.ap ...
随机推荐
- 2018牛客网暑期ACM多校训练营(第一场)B Symmetric Matrix(思维+数列递推)
题意 给出一个矩阵,矩阵每行的和必须为2,且是一个主对称矩阵.问你大小为n的这样的合法矩阵有多少个. 分析 作者:美食不可负064链接:https://www.nowcoder.com/discuss ...
- bzoj千题计划322:bzoj2561: 最小生成树(最小割)
https://www.lydsy.com/JudgeOnline/problem.php?id=2561 考虑Kruscal算法求最小生成树的流程 如果 u和v之间的长为L的边能出现在最小生成树里, ...
- Redis学习笔记(二)解析dump.rdb文件工具之redis-rdb-tools
https://github.com/sripathikrishnan/redis-rdb-tools 我这里使用docker搭建 docker搭建文档 https://rdbtools.com/do ...
- python之所以强大很大一部分原因在于他众多的取之不尽的库
GUI 的 自动任务用这个pyautogui库,web 页面的用 selenium + webdriver 同类型的还有 sikuli ,低配版 按键精灵 本教程译自大神Al Sweigart的PyA ...
- 01-Unity深入浅出(一)
一. 温故而知新 在开始学习Unity框架之前,有必要温习一下 [依赖倒置原则]和[手写IOC], 因为我们框架代码的构建都是基于[依赖倒置原则]的,而Unity框架的核心思想就是IOC和DI,所以有 ...
- 一个强大的VS代码搜索工具
最近一直在寻找一款VS代码搜索插件,终于找到了一个不错的,仅支持vs2012以上. https://marketplace.visualstudio.com/items?itemName=mario- ...
- JDK8新特性03 Lambda表达式03_Java8 内置的四大核心函数式接口
import java.util.ArrayList; import java.util.Arrays; import java.util.List; import java.util.functio ...
- luogu P3899 [湖南集训]谈笑风生
传送门 nmyzd,mgdhls,bnmbzdgdnlql,a,wgttxfs 对于一个点\(a\),点\(b\)只有可能是他的祖先或者在\(a\)子树里 如果点\(b\)是\(a\)祖先,那么答案为 ...
- 灾难性遗忘(catastrophic forgetting)
Overcoming catastrophic forgetting in neural networks(克服神经网络中的灾难性遗忘) 原文: https://www.pnas.org/conten ...
- 修改element表格组件的样式
最近在开发一个项目,使用到了element中的表格组件,但是该组件的样式不是我们想要的样式,需要自己再调整,但是常常会遇到自己设置的样式无效,我使用的技术是Vue开发的 1. 页面使用了三栏布局,最右 ...