Shell脚本分享之自动创建SVN用户

731 阅读1分钟

工作中经常会给新入职的开发人员配置svn的用户,虽然步骤简单,但是这种重复性的工作实在是做的要吐了,所以还是使用脚本来提高生产力,也为我们节省更多时间来做其他事情。

使用这个脚本需要提前配置好svn配置文件路径、svnserve路径、新用户默认密码以及管理员用户密码、svn根目录URL。执行脚本时输入用户名以及授权路径即可完成用户创建。

 #!/bin/bash
 # 默认密码
 password="123456"
 # svnserve路径
 servedir="/home/svn/project"
 # 配置文件路径
 confdir="/home/svn/project/conf"
 # 用户名
 read -r -p "请输入用户名:" uname
 # 判断用户是否存在
 if grep "${uname}" ${confdir}/passwd; then
     echo "用户${uname}已存在"
     exit
 fi
 # 显示svn目录树,注意,此处需要配置svn管理员用户名:密码(admin:admin123)、根目录地址(http://localhost/svn/)
 curl -u "admin:admin123" http://localhost/svn/ 2>/dev/null | grep "li" | awk -F '/">|/</' 'BEGIN {print "/---"} {print "  |---/" $2}' >svntree.out
 echo -e "当前SVN目录树为:\n$(cat svntree.out)\n"
 read -r -p "请为新用户指定目录,如指定需访问http://192.168.64.3/svn/SunDS,则输入:/SunDS:" authurl
 # 判断目录是否存在
 if ! grep "${authurl}" svntree.out; then
     echo "${authurl}目录不存在"
     exit
 fi
 ​
 #检查authz中是否配置目录,如果未配置,则创建目录
 #if ! grep -E "[$authurl]" ${confdir}/authz; then
 #    echo "[$authurl]" >>${confdir}/authz
 #fi
 ​
 ##创建svn账号
 # 配置webpasswd
 # -b Use the password from the command line rather than prompting for it.
 # -n Don't update file; display results on stdout.
 htpasswd -b -n "${uname}" ${password} >>${confdir}/webpasswd
 # 配置passwd
 echo "${uname}=$password" >>${confdir}/passwd
 # 配置authz,用户权限默认rw
 grep -E -n "[$authurl]" ${confdir}/authz | awk -F: '{print $1}' | xargs -I{} sed -i "{}a ${uname}=rw" ${confdir}/authz
 # 重启svn
 # svnpid=$(ps -ef | grep svnserve | grep -v grep | awk '{print $2}')
 pgrep svnserve | xargs -i kill -15 {}
 svnserve -d -r $servedir
 echo "创建用户成功!"
 ​

欢迎大家关注我,更多Linux干货等着你!

公众号.jpg