在Linux(CentOS 6.6)服务器上安装并配置基于Apache的SVN服务器

在Linux(CentOS 6.6)服务器上安装并配置基于Apache的SVN服务器

 1 #!/bin/bash  2 #  3 # 在Linux(CentOS 6.6)服务器上安装并配置基于Apache的SVN服务器:  4 #  5 # 1、安装服务  6 # 2、创建svn版本库  7 # 3、创建svn用户  8 # 4、配置svn权限  9 # 5、配置http访问  10 #  11  12 #  13 # 1、安装服务  14 #  15  16 # 1.1、安装程序包:subversion httpd mod_dav_svn  17  18 yum install subversion httpd mod_dav_svn -y >> $0.log  19 if [[ $? != 0 ]]  20 then  21 echo "安装服务失败,停止svn部署"  22 exit 1  23 fi  24  25 #  26 # 2、创建svn版本库  27 #  28  29 # 2.1、定义svn版本库存放目录  30 svn_path=/svn  31 # 2.2、创建svn版本库存放目录  32 mkdir -p $svn_path  33 # 2.3、定义要创建版本库的名称  34 repo_name=mysvn5  35 # 2.4、创建新的版本库  36 if [[ -d $svn_path/$repo_name ]]  37 then  38 echo "版本库 $repo_name 已经存在"  39 exit 1  40 fi  41 svnadmin create $svn_path/$repo_name  42 # 2.5、配置svn版本库的属主属组为http服务的启动用户  43 chown apache.apache -R $svn_path  44 # 2.6、确认新创建的svn版本库已经生成,且文件属主属组正确  45 ls -l $svn_path/$repo_name >> $0.log  46  47 #  48 # 3、创建svn用户  49 #  50  51 # 3.1、创建svn管理员账号  52 admin_passwd=$(< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c9)  53 htpasswd -c -b -m $svn_path/$repo_name/conf/passwd admin $admin_passwd  54 echo "$repo_name 版本库的管理员账号为 admin ,密码是 $admin_passwd " |tee -a $0.log  55  56 # 3.2、创建svn具有读写权限的账号  57 rw_user_passwd=$(< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c9)  58 htpasswd -b -m $svn_path/$repo_name/conf/passwd rw_user $rw_user_passwd  59 echo "$repo_name 版本库的读写账号为 rw_user ,密码是 $rw_user_passwd " |tee -a $0.log  60  61 # 3.3、创建svn具有只读权限的账号  62 ro_user_passwd=$(< /dev/urandom tr -dc _A-Z-a-z-0-9 | head -c9)  63 htpasswd -b -m $svn_path/$repo_name/conf/passwd ro_user $ro_user_passwd  64 echo "$repo_name 版本库的只读账号为 ro_user ,密码是 $ro_user_passwd " |tee -a $0.log  65  66 #  67 # 4、配置svn权限  68 #  69  70 # 4.1、设置权限节点  71 echo "[$repo_name:/]" >>$svn_path/$repo_name/conf/authz  72 # 4.2、配置管理员账号有“读写”权限  73 echo "admin = rw" >>$svn_path/$repo_name/conf/authz  74 # 4.3、配置读写账号有“读写”权限  75 echo "rw_user = rw" >>$svn_path/$repo_name/conf/authz  76 # 4.4、配置只读账号有“只读”权限  77 echo "ro_user = r" >>$svn_path/$repo_name/conf/authz  78  79 #  80 # 5、配置http访问  81 #  82  83 echo '<Location /svn/'$repo_name'>' >> /etc/httpd/conf.d/subversion.conf  84 # 定义svn类型的http服务,会调用dav_svn_module  85 echo ' DAV svn' >> /etc/httpd/conf.d/subversion.conf  86 # svn版本库目录  87 echo ' SVNPath '$svn_path'/'$repo_name'' >> /etc/httpd/conf.d/subversion.conf  88 # svn访问权限的配置文件  89 echo ' AuthzSVNAccessFile '$svn_path'/'$repo_name'/conf/authz' >> /etc/httpd/conf.d/subversion.conf  90 # svn使用http基本验证方式验证账号身份  91 echo ' AuthType Basic' >> /etc/httpd/conf.d/subversion.conf  92 # http基本验证的提示信息  93 echo ' AuthName "Authorization repot SVN"' >> /etc/httpd/conf.d/subversion.conf  94 # svn账号配置文件,包含加密后的密码信息  95 echo ' AuthUserFile '$svn_path'/'$repo_name'/conf/passwd' >> /etc/httpd/conf.d/subversion.conf  96 # 仅允许通过验证的用户访问svn  97 echo ' Require valid-user' >> /etc/httpd/conf.d/subversion.conf  98 echo '</Location>' >> /etc/httpd/conf.d/subversion.conf  99 100 # 重启http服务 101 /etc/init.d/httpd restart 102 # 设置http服务开机启动 103 chkconfig httpd on 104 # 在防火墙上开放http服务 105 iptables -I INPUT -p tcp --dport 80 -m state --state NEW -j ACCEPT 106 /etc/init.d/iptables save 107 # 关闭selinux 108 setenforce 0 109 110 # 111 # 6、提交代码时必须写注释,且不能少于10个字符;允许修改注释 112 # 113 114 cp $svn_path/$repo_name/hooks/pre-commit.tmpl $svn_path/$repo_name/hooks/pre-commit 115 116 sed -i '75a LOGMSG=$($SVNLOOK log -t "$TXN" "$REPOS" | grep "[a-zA-Z0-9]" | wc -c)\nif [ "$LOGMSG" -lt 10 ]; then\necho -e "\n 提交文件时必须添加注释,提交中止."1>&2\nexit 1\nfi' $svn_path/$repo_name/hooks/pre-commit 117 118 sed -i 's/^commit-access-control.pl/#commit-access-control.pl/' $svn_path/$repo_name/hooks/pre-commit 119 120 chmod +x $svn_path/$repo_name/hooks/pre-commit 121 122 cp $svn_path/$repo_name/hooks/pre-revprop-change.tmpl $svn_path/$repo_name/hooks/pre-revprop-change 123 124 chmod +x $svn_path/$repo_name/hooks/pre-revprop-change

 

转载于:https://www.cnblogs.com/www1707/p/5435919.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

发布者:全栈程序员-用户IM,转载请注明出处:https://javaforall.cn/109054.html原文链接:https://javaforall.cn

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • Windows远程桌面开发之九-虚拟显示器(Windows 10 Indirect Display 虚拟显示器驱动开发)[通俗易懂]

    Windows远程桌面开发之九-虚拟显示器(Windows 10 Indirect Display 虚拟显示器驱动开发)[通俗易懂]byfanxiushu2019-06-24转载或引用请注明原始作者。这里与远程桌面关系不是太大,但这个部分是xdisp_virt远程控制程序的实现多显示器桌面扩展的子功能,因此也归为远程桌面开发一类。这篇文章与之前发布的…

  • 51单片机毕业设计题目_51单片机经典项目

    51单片机毕业设计题目_51单片机经典项目STC12C5A60S2DS12887单片机毕业设计51单片机项目数码管显示的合成出租车计价器设计Synthetictaximeterdigitaldisplaydesign学生姓名: 学生学号: 10700121专业名称: 电子信息工程指导教师:计算机与信息工程学院2014年6月13日独创性声明本人声明所呈交的毕业设计(论文)是本人在指导教师指导下进行的研究工作和取得的研究成果,除了文中特别加以引用标注之处外,论文中不包含其他人已经发表或撰写过的研究成果,没有伪造数据的

  • zabbix监控哪些指标_zabbix监控爱快

    zabbix监控哪些指标_zabbix监控爱快前言面试中经常会被问到一些技术问题,面试官一方面是看你对于当前技术的点的掌握情况,另一方面是判断你是否在公司里干过,毕竟很多技术只要自学一下就能应付面试。今天我们来聊聊,面试中那些高频的问题,比如zabbix你都监控哪些参数。一.原理解释说到监控,在运维这个行业其实有很多开源的监控方案,目前最常见的就是zabbix+grafana,我工作那时候还是用cacti和nagios的比较多。还记得以前去面试,面试官来了一句,zabbix会搭建吗,会的话你在这搭建下,30分钟搭建出来就入职。不管

    2022年10月22日
  • taskscheduler java_java – taskScheduler池的奇怪行为「建议收藏」

    taskscheduler java_java – taskScheduler池的奇怪行为「建议收藏」我有两个弹簧启动应用程序(1.4.3.RELEASE),它们位于同一台服务器上.应用程序A是一个单一的应用程序,其中包含用于处理警报的部分代码,而应用程序B是一个仅处理警报的新专用应用程序.这里的目标是打破小应用程序中的monolotic应用程序.现在,这两个代码一起运行,因为我有旧系统,总是调用应用程序A.这两个应用程序有一个基于ThreadPoolTask​​Scheduler配置的taskS…

    2022年10月11日
  • 日志查看–journalctl[通俗易懂]

    日志查看–journalctl[通俗易懂]7.journal(1)journalctl //日志查看工具-n3 //查看最近3条日志-perr //查看错误日志-overbose //查看日志的详细参数–since //查看从什么时间开始的日志–until //查看到什么时间为止的日志(2)如何使用systemd-journald保存系统日志默认systemd-journald是不保存系统日志到硬盘的,那…

  • python中sqrt的用法_Python中sqrt函数怎么用「建议收藏」

    python中sqrt的用法_Python中sqrt函数怎么用「建议收藏」Python中sqrt函数怎么用?下面给大家带来sqrt函数的相关介绍:Python数字sqrt()函数返回x的平方根(x>0)。语法以下是sqrt()方法的语法-importmathmath.sqrt(x)注意-此函数不可直接访问,需要导入math模块,然后需要使用math静态对象调用此函数。参数x-这是一个数字表达式。返回值该方法返回x的平方根(x>0)。sqrt()…

发表回复

您的电子邮箱地址不会被公开。

关注全栈程序员社区公众号