svn安装脚本

#!/bin/bash 

dir='/data1/svndata' ##svn的目录

name=$2  ##svn的资源库名称

user='kbson'  ##svn验证登陆的用户名

passwd='kbsonlong'  ##svn验证登陆的密码


if test ! -z "$name"; then
mkdir -p $dir 
cd $dir/
svnadmin create $name
chown -R apache:apache $name
fi


function config_http()
{
yum -y install httpd httpd-devel subversion mod_dav_svn expect

cat >/etc/httpd/conf.d/subversion_$name.conf<<EOF

LoadModule dav_svn_module    modules/mod_dav_svn.so 

LoadModule authz_svn_module  modules/mod_authz_svn.so 

<Location /$name>

DAV svn 

SVNListParentPath on 

SVNPath "$dir/$name" 

AuthType Basic 

AuthName "Subversion repository" 

AuthUserFile "$dir/$name/conf/authfile" 

Require valid-user 

SVNAutoversioning on 

ModMimeUsePathInfo on 

</Location>

EOF
}


function  create()
{

echo " 

[groups] 

admin = test

[admin:/] 

@admin = rw

[/] 

* = r 

[$name:/] 

test = rw">>$dir/$name/conf/authz 

echo '#!/usr/bin/expect 

spawn /usr/bin/htpasswd -c '$dir'/'$name'/conf/authfile '$user'

expect "New password:" 

send "'$passwd'\n" 

expect "Re-type new password:" 

send "'$passwd'\n" 

interact'>/tmp/htpasswd.sh 

/usr/bin/expect /tmp/htpasswd.sh 

chown apache:apache $dir/$name/conf/authfile 

echo "$user = $passwd">>$dir/$name/conf/passwd 

#svn import $dir/$name/ file://$dir/$name -m "Initial repository"

sed -i "s%# anon-access = read%anon-access = none%g" $dir/$name/conf/svnserve.conf 

sed -i "s%# auth-access = write%auth-access = write%g" $dir/$name/conf/svnserve.conf 

sed -i "s%# password-db = passwd%password-db = $dir/$name/conf/passwd%g" $dir/$name/conf/svnserve.conf

sed -i "s%# authz-db = authz%authz-db =  $dir/$name/conf/authz%g" $dir/$name/conf/svnserve.conf


sed -i "s%# realm = My First Repository%realm = puppt Repository%g" $dir/$name/conf/svnserve.conf
} 

function  restart()
{

/etc/init.d/httpd restart 

SvnPid=`ps -ef |grep $dir |grep -v grep | awk '{print $2}'`

if test ! -z "$SvnPid"; then
kill -9 $SvnPid
fi

svnserve -d -r $dir/ \
&& ps -ef |grep $dir |grep -v grep | awk '{print $2}' >/tmp/.svnpid  \
&& echo Svn `cat /tmp/.svnpid` running...

}


case $1 in
  "create")
    create $2
    ;;
  "config_http")
    config_http $2
    ;;
  "restart")
    restart $2
    ;;
  *)
    echo "Usage $0 {config_http project_name | create project_name | restart }"
    ;;
esac

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值