svn脚本安装

没事搞了个脚本,一键安装svn带http访问

系统是centos6.5

下面直接贴上脚本内容

#!/bin/bash
#Author: charlie.cen
#Email: [email protected]
#Create_time: 2015-04-29

#定义安装的包
pkg="httpd subversion mod_dav_svn"
#定义仓库路径
repo_path=/opt/svn
#定义仓库名
read -p "Please enter your repo name: " repo
#定义日志文件
log="/tmp/install_svn.log"

#安装包
for i in ${pkg}
do
	rpm -qa |grep $i >> $log
	if [ $? -eq 0 ]
	then
		echo "$i was already installed." >> $log
	else
		yum install -y $i > /dev/null 2>&1
		echo "$i is now installed." >> $log
	fi
done

#创建仓库
if [ -e $repo_path -a -d $repo_path ]
then
	svnadmin create $repo_path/$repo && echo "$repo create successful" >> $log
else
	mkdir $repo_path && svnadmin create $repo_path/$repo && echo "$repo_path and $repo create successful." >> $log
fi

#修改svn配置
sed -i ‘s/^# anon-access = read/anon-access = none/‘ $repo_path/$repo/conf/svnserve.conf
sed -i ‘s/^# auth-access = write/auth-access = write/‘ $repo_path/$repo/conf/svnserve.conf
sed -i ‘s/^# password-db = passwd/password-db = passwd/‘ $repo_path/$repo/conf/svnserve.conf
sed -i ‘s/^# authz-db = authz/authz-db = authz/‘ $repo_path/$repo/conf/svnserve.conf
echo "svnserve conf file modify already." >> $log

#添加svn用户
echo -n "Enter your name access http svn: "
read name
echo -n "Enter your passwd access http svn: "
read passwd

echo "$name = $passwd" >> $repo_path/$repo/conf/passwd
echo "$name $passwd write on passwd file." >> $log
echo "admin = $name" >> $repo_path/$repo/conf/authz
echo -e  "[$repo:/]\[email protected] = rw" >> $repo_path/$repo/conf/authz
echo "$name user write on authz file." >> $log

#密码文件生成httppasswd文件
#egrep -v ‘^#|^$|^\[‘  $repo_path/$repo/conf/passwd |while read line
#do
        #username=`echo $line |cut -d"=" -f1`
        #password=`echo $line |cut -d"=" -f1`
#        if [ -n p1 ] && [ -f p1 ]
#        then
#                htpasswd -b p1 ${username} ${password}
#        else
#                htpasswd -bc p1 ${username} ${password}
#        fi
#done
if [ -n $repo_path/$repo/conf/webpasswd ] && [ -f $repo_path/$repo/conf/webpasswd ]
then
	htpasswd -b $repo_path/$repo/conf/webpasswd $name $passwd
else
	htpasswd -bc $repo_path/$repo/conf/webpasswd $name $passwd
fi
echo "webpasswd file create already." >> $log

#配置apache
ip=`ifconfig eth0 |awk ‘NR==2{print $2}‘ |awk -F: ‘{print $2}‘`
httpd_conf="/etc/httpd/conf/httpd.conf"
grep "^ServerName $ip:80" $httpd_conf && echo "ServerName config in $httpd_conf" >> $log ||echo "ServerName $ip:80" >> $httpd_conf

http_conf="/etc/httpd/conf.d/subversion.conf"
http_dir="/etc/httpd/conf.d"
dir=`basename $repo_path`

if [ -e $http_conf -a -f $http_conf ]
then
	echo "$http_conf was exist" >> $log
	cat >> $http_conf << EOF
<Location /$dir>
DAV svn
SVNParentPath $repo_path
AuthType Basic
AuthName "Subversion repository"
AuthUserFile $repo_path/$repo/conf/webpasswd
Require valid-user
AuthzSVNAccessFile $repo_path/$repo/conf/authz
</Location>
EOF
else
	echo "$http_conf was not exist" >> $log
	cat >> $http_conf << EOF
LoadModule dav_svn_module     modules/mod_dav_svn.so
LoadModule authz_svn_module   modules/mod_authz_svn.so
<Location /$dir>
DAV svn
SVNParentPath $repo_path
AuthType Basic
AuthName "Subversion repository"
AuthUserFile $repo_path/$repo/conf/webpasswd
Require valid-user
AuthzSVNAccessFile $repo_path/$repo/conf/authz
</Location>
EOF
fi

#启动svn服务
num=`ps -ef |grep svnserve |grep -v grep |wc -l`
if [ ${num} == 1 ]
then
	pkill svnserve
else
	svnserve -d -r $repo_path && echo "svnserve service was started." >> $log || echo "svnserve  service not started." >> $log
fi

#启动httpd
/etc/init.d/httpd configtest && /etc/init.d/httpd restart || echo "httpd config file is problem." >> $log

脚本经过测试,真实可用。有问题请反馈to me!

时间: 2024-09-26 06:56:53

svn脚本安装的相关文章

linux下svn服务安装(转)

linux下svn服务安装 博客分类: Linux SVN 一.环境准备 1.linux版本为centos6.4 X64 2.软件安装 yum install subversion httpd mod_dav_svn mod_perl sendmail mailx wget gcc-c++ make unzip perl* 3.以下所有操作均在root用户下完成 二.SVN服务器配置 1.新建一个目录用于存储SVN所有文件mkdir /home/svn 2.新建一个版本仓库svnadmin cr

Ubuntu下的图形版本控制RabbitVCS脚本安装

Ubuntu下的图形版本控制RabbitVCS脚本安装支持git svn hg ,对于习惯图形操作的用户来说不错.以下代码复制后,另存为installRabbitVCS.sh文件后,需要设置权限为777执行sudo ./installRabbitVCS即可. #! /bin/bash #echo "hello,world!" #增加源 sudo add-apt-repository ppa:rabbitvcs/ppa sudo apt-key adv --keyserver keyse

SVN的安装与常用功能使用以及解决安装配置过程中的一些错误

SVN简介: SVN是Subversion的简称,是一个开放源代码的版本控制系统,将工程代码集中在服务器上进行一个统一的集中式管理,从而能够方便地控制代码版本,相较于RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS.互联网上很多版本控制服务已从CVS迁移到Subversion.说得简单一点SVN就是用于多个人共同开发同一个项目,共用资源的目的,而且通过使用SVN开发人员之间[学Java,到凯哥学堂kaige123.com]能够很方便的更新.提交工程代码,并且如果工程的版本有冲突还

SVN的 安装

关于svn的安装,如图分别是服务端和客户端 下载地址:http://subversion.apache.org/packages.html 1.双击VisualSVN,点下一步,选择目录,就可以,很简单 2.点击next,后如下图 3.勾选后,点击next,如下图 4.点击next Location是指VisualSVN Server的安装目录 Repositorys是指定你的版本库目录 Server Port指定一个端口 Use secure connection勾山表示使用安全连接 Use

myEclipse svn 插件安装

MyEclipse6.0 安装svn插件 博客分类: 技术 只说一种在线安装流程: 1. 打开Myeclipse,在菜单栏中选择Help→Software Updates→Find and Install: 2. 选择Search for new features to install,点击Next进入下一步: 3. 点击“New Remote Site”按钮,在弹出的对话框中输入:        name:svn        url:http://subclipse.tigris.org/u

Eclipse中SVN的安装步骤(两种)和用法

一.给安装EclipseSVN,最常见的有两种方式:手动方式和使用安装向导方式.详细过程例如以下: 方式一:手动安装 1.从官网下载site-1.6.9.zip文件,网址是:subclipse.tigris.org2.从中解压出features与plugins目录,拷贝到E:/MyEclipse/myPlugin/svn里面,其他的*.xml文件不要.3.在E:/MyEclipse/MyEclipse X.X/dropins下新建文件svn.link,内容是:path=E://MyEclipse

MyEclipse10 SVN 插件安装

SVN安装环境 MyEclipse Enterprise Workbench Version: 10.7 windows 64位操作系统 MyEclipse10中安装插件,常用的有两种方法,第一种是下载SVN插件的文件夹,覆盖掉安装目录,第二种是在线安装插件,但有时候会出现 Could not connect to the "www.genuitec.com" server. 的错误信息. 安装方案 第一种安装方案:(推荐) 首先在网络上下载SVN的插件,下载地址为: http://s

SVN插件安装

最近工作的电脑问题不断,换了一台新的,开发环境从头搭,就记录下来Java开发环境的搭建.本想从重装系统开始写,由于那个时候没留意,所以先把SVN插件安装记录下来(有图有真相).个人觉得SVN插件安装是最简单的一种方法,还有一种方法,由于我比较懒,所以就没试过,如果以后碰到再加上. 第一步:先下载SVN插件安装包(根据自己电脑的系统选择下载) 第二步:解压下载的SVN插件安装包 第三步:将features和plugins两个文件夹复制到MyEclipse\MyEclipse 10\dropins下

【Linux】SVN的安装和配置

SVN SVN:SVN是Subversion的简称,是一种开放代码的版本控制系统,相比较RCS.CVS,它采用了分支管理系统,它的设计目标就是取代CVS.互联网上很多版本控制器服务已从CVS迁移到Subversion. 环境与原料 操作系统:Linux(CentOS版) svn版本:subversion-1.9.3.tar.gz(下载地址:http://subversion.apache.org/download) arp软件:apr-1.5.2.tar.gz(下载地址:http://apach