SVN的仓库创建,可以手动交互式来实现,脚本是自己写的,如有问题,欢迎指正。
#!/bin/bash
# 自动创建svn仓库, 分配权限.
cat << EOF
1. 该脚本会自动创建svn仓库;
2. 可以自定义用户和权限;
3. 无需重启svnserve服务, 更改会即可生效.
EOF
RETVAL () {
if [ $? -ne 0 ]; then
echo "$OPT Error. Exit..."
exit 7
fi
}
export LANG=zh_CN.UTF-8
SVNHOME=/var/svn/
[ ! -e $SVNHOME ] && mkdir $SVNHOME
# 测试subversion是否安装, 网络是否异常.
echo "测试subversion是否安装, 网络是否异常."
OPT=SoftwareAndNetwork
if ! rpm -q subversion &> /dev/null; then
echo "SVN软件尚未安装."
if ! ping www.baidu.com -w 1 -c 1 &>/dev/null; then
echo "网络异常! 请先修复. 目前将退出脚本..."
exit 6
fi
yum install -y subversion
fi
RETVAL
# 建立版本库.
echo "开始建立版本库..."
OPT=RepoCreate
read -p "请输入您要建立的版本库名称(例: Tomsvn): " REPONAME
svnadmin create $SVNHOME$REPONAME
RETVAL
# 添加用户和配置用户认证信息
echo "开始添加用户和配置用户和认证信息..."
OPT=UserCertificate
sed -i 's@# anon-access = read@anon-access = none@g' $SVNHOME$REPONAME/conf/svnserve.conf
sed -i 's@# auth-access = write@auth-access = write@g' $SVNHOME$REPONAME/conf/svnserve.conf
sed -i 's@# password-db = passwd@password-db = passwd@g' $SVNHOME$REPONAME/conf/svnserve.conf
sed -i 's@# authz-db = authz@authz-db = authz@g' $SVNHOME$REPONAME/conf/svnserve.conf
sed -i "s@# realm = My First Repository@realm = $REPONAME@g" $SVNHOME$REPONAME/conf/svnserve.conf
while :; do
read -p "请输入您要添加的svn用户名称 (一次输入一个名称, 可以添加多个用户), 输入q来退出添加用户: " SVNUSER
if [ $SVNUSER == 'q' ]; then
break
echo "添加用户结束."
fi
read -p "请输入以上添加用户的密码: " PASSWD
echo "$SVNUSER = $PASSWD" >> $SVNHOME$REPONAME/conf/passwd
echo "添加SVN用户$SVNUSER成功."
done
echo "[$REPONAME:/]" >> $SVNHOME$REPONAME/conf/authz
while :; do
read -p "请输入要配置权限的svn用户名称 (一次配置一个, 可配置多次. 键入q来退出权限配置.): " AUTHUSER
if [ $AUTHUSER == 'q' ]; then
break
echo "配置用户权限结束."
fi
read -p "请输入以上要配置的用户的的权限 (只读: r; 读写: rw): " MODE
echo "$AUTHUSER = $MODE" >> $SVNHOME$REPONAME/conf/authz
echo "为$AUTHUSER用户配置权限成功."
done
if ! ( ps aux |grep svnserve |grep -v grep &> /dev/null ); then
echo "svnserve服务未开启, 尝试开启..."
svnserve -d -r $SVNHOME
if [ $? -ne 0 ]; then
echo "svn服务开启失败, 请手动开启..."
exit 8
fi
fi
RETVAL
发表回复
要发表评论,您必须先登录。