文档章节

快速创建svn脚本

完美世界
 完美世界
发布于 2014/06/04 01:01
字数 663
阅读 42
收藏 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
124
1
SVN跨服务器配置post-commit提交后自动更新(SVN与WEB服务器不在同一台机器)

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

PartyAnimals
2018/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
2018/07/31
22
0
virtualbox的ubuntu虚拟机中搭建SVN服务器

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

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

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

万事通
2017/10/31
48
0

没有更多内容

加载失败,请刷新页面

加载更多

OSChina 周二乱弹 —— 开发语言和语言开发的能一样么

Osc乱弹歌单(2019)请戳(这里) 【今日歌曲】 @花间小酌:#今日歌曲推荐# 分享The Score的单曲《Revolution》 《Revolution》- The Score 手机党少年们想听歌,请使劲儿戳(这里) @批判派...

小小编辑
今天
1K
16
oracle ORA-39700: database must be opened with UPGRADE option

ORA-01092: ORACLE instance terminated. Disconnection forced ORA-00704: bootstrap process failure ORA-39700: database must be opened with UPGRADE option 进程 ID: 3650 会话 ID: 29......

Tank_shu
今天
3
0
分布式协调服务zookeeper

ps.本文为《从Paxos到Zookeeper 分布式一致性原理与实践》笔记之一 ZooKeeper ZooKeeper曾是Apache Hadoop的一个子项目,是一个典型的分布式数据一致性的解决方案,分布式应用程序可以基于它...

ls_cherish
今天
4
0
聊聊DubboDefaultPropertiesEnvironmentPostProcessor

序 本文主要研究一下DubboDefaultPropertiesEnvironmentPostProcessor DubboDefaultPropertiesEnvironmentPostProcessor dubbo-spring-boot-project-2.7.3/dubbo-spring-boot-compatible/au......

go4it
昨天
3
0
redis 学习2

网站 启动 服务端 启动redis 服务端 在redis 安装目录下 src 里面 ./redis-server & 可以指定 配置文件或者端口 客户端 在 redis 的安装目录里面的 src 里面 ./redis-cli 可以指定 指定 连接...

之渊
昨天
2
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部