文档章节

快速创建svn脚本

完美世界
 完美世界
发布于 2014/06/04 01:01
字数 663
阅读 41
收藏 0

#/bin/bash
# auto set svn httpd
# author:liubaixun
# email:wmsjhappy@gmail.com
# subversion (SVN服务器)
# httpd mod_dav_svn mod_perl (用于支持WEB方式管理SVN服务器)
# ntsysv vim-enhanced (可选)
# yum install subversion mysql-server httpd mod_dav_svn mod_perl sendmail wget gcc-c++ make unzip perl* ntsysv vim-enhanced

# will install base software
if [ "$1" = "0" ]; then
yum -y install subversion httpd
fi
# set evn name
# svn 用于存储SVN所有文件
svnDir="/database/svn"
# svn 的项目的名字
projectName="ralink"
svnWelcome="svn for $projectName"
# svn 的登录帐号和密码
svnGroup="admin"
svnName="admin"
svnPass="123456"
#读写权限: r w
# 说明:只有svnGroup用户组有根目录的读写权。
# r表示对该目录有读权限,w表示对该目录有写权限,rw表示对该目录有读写权限。
WriteRead=rw

# 1.新建一个目录用于存储SVN所有文件
rm -i $svnDir
mkdir -p $svnDir
# 2.新建一个版本仓库
svnadmin create $svnDir/$projectName
# 3.初始化版本仓库中的目录
# 建立临时目录
mkdir $projectName $projectName/trunk $projectName/tag $projectName/branch
# 初始化
svn import $projectName/ file:///$svnDir/$projectName -m "初始化SVN目录"
# 4.删除临时建立的目录
rm -rf $projectName

# 5.添加用户
echo "$svnName=$svnPass" >> $svnDir/$projectName/conf/passwd

# 6.修改访问策略
echo "[groups]" > $svnDir/$projectName/conf/authz
echo "$svnGroup = $svnName" >> $svnDir/$projectName/conf/authz
echo "[$projectName:/]" >> $svnDir/$projectName/conf/authz
echo "@$svnGroup = $WriteRead" >> $svnDir/$projectName/conf/authz
#最后一行的* =表示,除了上面设置了权限的用户组之外,其他任何人都被禁止访问本目录。这个很重要,一定要加上!
echo "* =" >> $svnDir/$projectName/conf/authz

# 7.修改svnserve.conf文件,让用户和策略配置升效.
sed -i "/anon-access/d"  $svnDir/$projectName/conf/svnserve.conf
sed -i "/auth-access/d"  $svnDir/$projectName/conf/svnserve.conf
sed -i "/password-db/d"  $svnDir/$projectName/conf/svnserve.conf
sed -i "/authz-db/d"  $svnDir/$projectName/conf/svnserve.conf
echo "anon-access = none" >> $svnDir/$projectName/conf/svnserve.conf
echo "auth-access = write" >> $svnDir/$projectName/conf/svnserve.conf
echo "password-db = $svnDir/$projectName/conf/passwd" >> $svnDir/$projectName/conf/svnserve.conf
echo "authz-db = $svnDir/$projectName/conf/authz" >> $svnDir/$projectName/conf/svnserve.conf

# 8. please test
# 启动服务器
# svnserve -d -r /home/svn
#注意:如果修改了svn配置,需要重启svn服务,步骤如下:
# ps -aux|grep svnserve
# kill -9 ID号
# svnserve -d -r /home/svn

# 9. 配置SVN服务器的HTTP支持
# 由于SVN服务器的密码是明文的,HTTP服务器不与支持,所以需要转换成HTTP支持的格式
# set pass by http
htpasswd -bc $svnDir/$projectName/conf/webpasswd $svnName $svnPass


# 10.修改http.conf
echo "<Location /$projectName>" >> /etc/httpd/conf/httpd.conf
echo " DAV svn" >> /etc/httpd/conf/httpd.conf
echo " SVNPath $svnDir/$projectName/" >> /etc/httpd/conf/httpd.conf
echo " AuthType Basic" >> /etc/httpd/conf/httpd.conf
echo " AuthName \"$svnWelcome\"" >> /etc/httpd/conf/httpd.conf
echo " AuthUserFile $svnDir/$projectName/conf/webpasswd" >> /etc/httpd/conf/httpd.conf
echo " AuthzSVNAccessFile $svnDir/$projectName/conf/authz" >> /etc/httpd/conf/httpd.conf
echo " Satisfy all" >> /etc/httpd/conf/httpd.conf
echo " Require valid-user" >> /etc/httpd/conf/httpd.conf
echo "</Location>" >> /etc/httpd/conf/httpd.conf

# 11.修改svn目录的属主为apache帐号
chown -R apache.apache $svnDir/$projectName/

# 12.重启httpd服务
/etc/init.d/httpd restart &
exit 0
 

© 著作权归作者所有

共有 人打赏支持
完美世界
粉丝 10
博文 151
码字总数 134011
作品 0
西城
高级程序员
私信 提问
CentOS上快速搭建Subversion[SVN]版本控制服务器 svn服务器

这里所说的快速搭建是指建立一个私人使用的SVN服务器,不带Web访问功能,并不需要配置与Apaceh相关联的东东。 第一步:安装Subversion yum install subversion 第二步:添加运行Subversion ...

Skott
2013/09/28
0
1
SVN跨服务器配置post-commit提交后自动更新(SVN与WEB服务器不在同一台机器)

背景情况:SVN与WEB不在同一台服务器上,需要SVN提交后WEB站点自动进行SVN UPDATE更新,查阅网上的教程,发现部分的细节和权限部分没有提到导致跨服务器ssh执行更新脚本失败,手动执行post-...

PartyAnimals
06/26
0
0
liunx 搭建svn服务器并实现钩子自动更新到web项目

1:检查系统有没有安装svn # rpm -qa subversion 2: 如果没有安装采取安装svn # yum install subversion 3: 创建版本库 # mkdir /opt/svn # svnadmin create /opt/svn/project1 4: 配置版本库......

whole_stack_coder
07/31
0
0
virtualbox的ubuntu虚拟机中搭建SVN服务器

一 安装SVN sudo apt-get install subversion 二 用自动脚本配置SVN服务器 SVN服务器的分为如下几步: 1 在ubuntu上创建SVN用户及SVN用户组 2 创建SVN根目录及项目目录 3 创建SVN数据仓库 4 ...

胖老狼
2013/02/27
0
0
异地远程迁移SVN库同步数据

按如下 shell 脚本执行顺序一次操作即可。 1、$ cat svnlist.xml Android7.1.1_SHHAI Android7.1.1_BJMO ///////////////////////////////////////////// 各SVN项目库的名字,全部都写到这个...

万事通
2017/10/31
0
0

没有更多内容

加载失败,请刷新页面

加载更多

Sping之项目中pofile的应用

工程中,我们必须要面对的一件事就是, 开发环境中使用的数据库连接地址等与生产上的不同, 如果上线, 那么我们是否还要手动修改这些地址么, 这样做有很多弊端, 不方便, 这时我们就可以使用spr...

克虏伯
8分钟前
0
0
Linux中安装MySQL

Linux中安装MySQL 一、准备工作 此处准备的操作系统位CentOS 7。 MySQL安装包: MySQL-server-5.6.29-1.linux_glibc2.5.x86_64.rpm MySQL-client-5.6.29-1.linux_glibc2.5.x86_64.rpm 将准备......

星汉
13分钟前
0
0
深入理解Hadoop之HDFS架构

Hadoop分布式文件系统(HDFS)是一种分布式文件系统。它与现有的分布式文件系统有许多相似之处。但是,与其他分布式文件系统的差异是值得我们注意的: HDFS具有高度容错能力,旨在部署在低成...

架构师springboot
17分钟前
0
0
MaxCompute表设计最佳实践

MaxCompute表设计最佳实践 产生大量小文件的操作 MaxCompute表的小文件会影响存储和计算性能,因此我们先介绍下什么样的操作会产生大量小文件,从 而在做表设计的时候考虑避开此类操作。 使用...

阿里云官方博客
18分钟前
0
0
云上领跑,快人一步:华为云抢先发布Redis5.0

12月17日,华为云在DCS2.0的基础上,快人一步,抢先推出了新的Redis 5.0产品,这是一个崭新的突破。目前国内在缓存领域的发展普遍停留在Redis4.0阶段,华为云率先发布了Redis5.0,全面展现了...

中间件小哥
18分钟前
0
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部