Linux系统shell脚本一键部署svn

#!/bin/bash
#该脚本每次可以创建一个svnrepo.


basepath=$(cd `dirname $0`; pwd)

function create_dir (){

#########define variable

read -p "输入要创建的SVN库: " svnrepo

[ -z $svnrepo ]&& exit

mkdir /var/svn
cd /var/svn
/usr/bin/svnadmin create /var/svn/$svnrepo

conf_url=$basepath/${svnrepo}/conf/svnserve.conf

#########exec command

cp $conf_url /$conf_url.bak

echo "[general]" > $conf_url

echo "anon-access = none" >>$conf_url

echo "auth-access = write" >>$conf_url

echo "password-db = passwd" >>$conf_url

echo "authz-db = authz" >>$conf_url

echo "realm = /var/svn/${svnrepo}" >>$conf_url

echo "[sasl]" >>$conf_url

#rm -rf $conf_url/${svnrepo}/conf/{authz,passwd}

#echo "[${svnrepo}:/]" >>$basepath/authz

#echo "####${svnrepo}" >>$basepath/passwd

echo -e "\033[36;40m已经完成,请编辑authz文件给相关人员授权\033[0m"

#########the end

}

function vim_passwd(){

echo "请配置用户名密码及权限"

pwd_url=$basepath/${svnrepo}/conf/passwd

authz_url=$basepath/${svnrepo}/conf/authz

read -p "输入用户名: " username
read -p "输入密码: " passwd
echo "$username=$passwd" >>$pwd_url

read -p "请输入权限(包括r(读)、w(写)、rw(读写)): " authz

if [ "$authz" == 'r' ] || [ "$authz" == 'w' ] || [ "$authz" == 'rw' ]
then
	echo "[/]" >>$authz_url
	echo "$username = $authz" >>$authz_url
else
	echo "输入错误"
	read -p "请重新输入权限(包括r(读)、w(写)、rw(读写)): " authz
	echo "[/]" >>$authz_url
	echo "$username = $authz" >>$authz_url
fi

read -p "是否继续添加用户名密码(Y/N): " yesNo

while [ $yesNo == 'Y' ] || [ $yesNo == 'y' ]
do
	if [ "$yesNo" == 'Y' ] || [ "$yesNo" == 'y' ] ;then 
		read -p "输入用户名: " username
		read -p "输入密码: " passwd
		echo "$username=$passwd" >>$pwd_url
		read -p "请输入权限:包括r(读)、w(写)、rw(读写)" authz
		if [ "$authz" == 'r' ] || [ "$authz" == 'w' ] || [ "$authz" == 'rw' ]
		then
			echo "$username = $authz" >>$authz_url
		else
			echo "输入错误"
			read -p "请重新输入权限(包括r(读)、w(写)、rw(读写)): " authz
			echo "$username = $authz" >>$authz_url
		fi
		read -p "是否继续添加用户名密码(Y/N): " yesNo
	else
		return 0
	fi
done

}


svn=`/usr/bin/which svnserve`

if [ $? -ne 0 ]; then

echo "subversion 没有安装,正在帮您安装。。。。。"

sleep 1

echo "。。。。"

yum install -y subversion


echo -e "\033[31m记得关闭selinux和开放防火墙3690端口~\033[0m"

create_dir

vim_passwd

else

status=`ps aux |grep svnserve |grep -v 'grep'`

if [ -z "$status" ]; then

echo -e "\033[36;40m未发现svnserve服务运行,将在指定当前目录下为svn根目录\033[0m"

echo "正在启动svn服务。。。"

$svn -d -r $basepath

sleep 1

create_dir

vim_passwd

else

echo -e "本机已经运行svn服务: $status"|awk 'BEGIN{FS=" ";OFS=" " }{ print $1,$12,$13,$14,$15}'

basepath=`echo "$status"|awk '{print $14}'`

echo -e "\033[36;40m进入$basepath目录\033[0m"

cd $basepath

create_dir

vim_passwd

fi

fi
  • 2
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值