Linux 配置 SVN自动发送邮件

原创 2013年12月02日 15:39:19

公司游戏运营需要,新搭建了一个SVN并配置了一下提交自动发送邮件的功能,备忘一下几个关键步骤内容,供有用的同学参考哈


1、准备好安装包:

apr-1.3.8.tar.gz

apr-util-1.3.9.tar.gz

httpd-2.2.4.tar.gz

subversion-1.6.5.tar.gz

subversion-deps-1.6.5.tar.gz


2、安装apr和apr-util包

3、安装apache

        # tar –zvxf httpd-2.2.4.tar.gz
        # cd httpd-2.2.4
        # ./configure
        --prefix=/usr/local/apache
        --with-apr=/usr/local/apr
        --with-apr-util=/usr/local/apr-utl
        --enable-modules=so /* DSO模式安装apache (或 --enable-so)
        --enable-dav
        --enable-maintainer-mode
        -- enable-rewrite
        # make ; make install
        安装好后启动apache
        # /usr/local/apache/bin/apachectl –k start
        用浏览器查看http://localhost/,得到it works,说明apache已经配置成功了。

4、安装和配置 subversion
        #tar –zvxf subversion-1.4.5.tar.gz
        #tar –zvxf subversion-deps-1.4.5.tar.gz /*这两个自动解压成一个包 subversion-1.4.5
        #cd subversion-1.4.5
        #rm –rf apr
        #rm -rf apr-util
        注意:SVN 依赖的APR版本要正确。如果Apache为2.0.x,对应的APR版本应为0.9.x;Apache为2.2.x,对应的APR版本应为1.2.x。由于subversion-deps包里的APR是0.9.x的,因此编译svn时要删除从deps里解压出来的apr, apr-util,改而使用apache 2.2里提供的。(这里指定为开始安装的apr目录),这一点知识非常重要,自己之前多次安装都没成功,现在才明白是在这一点被卡住了,但最终还是被我解决了, 学习,和不断实践 会使你不断成长!
        #./configure
        --prefix=/usr/local/svn
        --with-apxs=/usr/local/apache/bin/apxs
        --with-apr=/usr/local/apr/bin/apr-1-config
        --with-apr-util=/usr/local/apr/bin/apu-1-config
        --with-ssl
        --with-zlib
        --enable-maintainer-mode
        #make
        #make install
        确定一下svn有没有安装成功
        #/usr/local/svn/bin/svnserve - -version

       会看到相关版本信息!
        完了再看看apache 的相关模块有没有加载!如下!
        LoadModule dav_svn_module modules/mod_dav_svn.so
        LoadModule authz_svn_module modules/mod_authz_svn.so

       开始建立版本库
        #svnadmin create /opt/svnrepo/test/*创建仓库"test"

        ls /svn/project/test /*查看有没有创建好,如果多了一些文件则说明版本库已经创建好

        配置提高svn版本库的安全性
        #chmod –R 700 /opt/svnrepo/test不让其他人有该目录的权限
        注意: 直接这么chmod会导致svn客户端无法访问,同时需要修改apache配置文件./conf/httpd.conf文件,(如果你的水平不够高的话,这一步可以先跳过,以免给自己找麻烦!等把服务完全搞定后再来进一步提高安全性) 在httpd.conf文件中有这么一段内容

        (我的系统在安装apache的时候,自动增加了apache用户和apache组,如果你系统没有这个用户和组,则请自己添加该用户和组)
        修改svn仓库的所有者
        #chown -R apache:apache /opt/svnrepo/test

5、配置apache支持svn

在httpd.conf内容最后面增加

#Svn Configuration
<Location /svn>
DAV svn
SVNParentPath /opt/svnrepo
AuthType Basic  
AuthName "Hello welcome to here"
AuthUserFile   /opt/svnrepo/upublish/conf/passwd.conf
AuthzSVNAccessFile /opt/svnrepo/upublish/conf/authz.conf
Require valid-user
</Location>

6、配置svn权限管理

        1 . 添加用户:
        # /usr/local/apache/bin/htpasswd –c /svn/passwd user1
        第一次设置用户时使用-c表示新建一个用户文件。回车后输入用户密码,完成对用户的增加
        第二次添加用户不需要带 –c 参数 如:
        # /usr/local/apache/bin/htpasswd /svn/passwd user2

         2 . 权限分配:
        #vi /svn/auth.conf
        [groups]
        team_admin = zhangsan
        team_yunying = lisi,wangwu


     [/]
     @team_admin = rw
    # &joe = r
     # * =

     [upublish:/]
      @team_admin = rw
     * = r
     [upublish:/yunying]
    @team_admin = rw
    @team_yunying = rw
    * = r

7、配置邮件发送

     a:使用sendmail,安装sendmail服务

     b:修改/etc/mail/sendmail.mc 修改DAEMON_OPTIONS(`Port=smtp,Addr=10.10.209.44, Name=MTA')dnl 为本机ip

     c:修改/etc/mail.rc 增加内容

           set from=xxx@126.com smtp=smtp.126.com smtp-auth-user=xxx smtp-auth-password=123456 smtp-auth=login

     d:增加svn_email_commit.sh发送邮件脚本,内容如下:

#!/bin/bash
REPOS=$1
REV=$2
SENDTO=$3
SENDFROM=xxx@126.com
 
LIMITDIFF=200
CHANGELOG=`svnlook log -r $REV $REPOS`
AUTHOR=`svnlook author -r $REV $REPOS`
CHANGED=`svnlook changed -r $REV $REPOS`
DIFF=`svnlook diff -r $REV $REPOS | head --lines=$LIMITDIFF`
DATE=`date`
TMPFILE=/tmp/svn$REV-$RANDOM.message
 
SUBJECT="SVNCommit ($AUTHOR) $REPOS [$REV]"
echo "-------------------- SVN Commit Notification --------------------
Repository: $REPOS
Revision:   $REV
Author:     $AUTHOR
Date:       $DATE
    
-----------------------------------------------------------------
Log Message:
-----------------------------------------------------------------
$CHANGELOG
 
-----------------------------------------------------------------
Changes:
-----------------------------------------------------------------
$CHANGED
 
-----------------------------------------------------------------
Diff: (only first $LIMITDIFF lines shown)
-----------------------------------------------------------------
$DIFF
" > $TMPFILE
# Send email
#cat $TMPFILE | mail -a "From: $SENDFROM" -s "$SUBJECT" "$SENDTO"
cat $TMPFILE | mail -a "$TMPFILE" -s "$SUBJECT" "$SENDTO"
 
# Cleanup
rm $TMPFILE

      e:修改post-commit脚本

#!/bin/sh
export LC_CTYPE=en_US.UTF-8

export PATH=$PATH:/usr/local/svn/bin:/opt/svnrepo/upublish/hooks:
REPOS="$1"
REV="$2"

SENDTO="aaa@126.com"
# Send it to these people, calling the script we created above
/opt/svnrepo/upublish/hooks/svn_email_commit.sh "$REPOS" "$REV" "$SENDTO"


8、自动sendmail服务

service sendmail start


10、可以测试

mail -s "test" bbb@126.com


linux下svn命令大全及为SVN加入Email通知

 1、将文件checkout到本地目录svn checkout path(path是服务器上的目录)例如:svn checkout svn://192.168.1.1/pro/domain简写:svn...
  • longfeey
  • longfeey
  • 2010年09月21日 13:40
  • 1951

Linux或Ubuntu下SVN服务器自动发送邮件配置

  • 2017年11月24日 17:24
  • 14KB
  • 下载

SVN设置Hooks自动群发更新邮件

项目组成员不定时向SVN提交代码或数据,管理员不能确切掌握项目代码更新动态。SVN向我们提供了设置Hooks自动群发更新邮件的功能,当项目组成员向SVN提交数据时,在Hooks中指定的邮箱将会接收到S...
  • gongxifacai_believe
  • gongxifacai_believe
  • 2016年03月28日 23:09
  • 961

UBUNTU配置mail发送邮件

最近在看PHP,里面提到mail函数可以对外发送邮件,感觉尤其高大上.所以就想试试.但是无论如何都试不成功.实在郁闷.所以就借鉴了一下网上的教程. 当前这篇博客并不是一篇完美的教程.因为到最后也没有...
  • cp3alai
  • cp3alai
  • 2015年04月26日 11:54
  • 757

svn提交时,邮件通知问题解决的经验谈

svn可以实现在commit提交时,使用hook钩子功能,向指定的邮箱发送提交注释comment/log及内容变化的邮件,以方便对之进行监控。 具体的描述就是, 1.当某个账号提交代码/文档时,使用钩...
  • gaolu
  • gaolu
  • 2015年01月27日 15:34
  • 8802

ubuntu10.10 通过hooks和mailer.py发送svn变更通知邮件

废话:虽然说现在git来势凶猛,但是svn还是用得很多的,将自己折腾svn的过程记录下来! svn提供了一个很方便的hooks功能(之前我的折腾ftp文章里面也有提及这总设计思想),可以为对repo...
  • LittleGrizzly
  • LittleGrizzly
  • 2012年03月20日 02:06
  • 2015

Ubuntu下配置SVN自动发送邮件通知

Ubuntu下配置SVN自动发送邮件通知1.安装相关软件:sudo apt-get install libauthen-sasl-perl     如果没安装libauthen-sasl-perl,则...
  • yihui8
  • yihui8
  • 2010年12月23日 18:42
  • 3594

如何配置禅道管理自动发送通知邮件

禅道支持邮件提醒功能,目前是当需求、bug有变动的时候,会给相关的人员发送email通知。任务的提醒暂时后没有做,后面版本会加上。 那么如何配置邮件提醒功能呢?很简单。 1. 进入到zentao的...
  • Alvin604497732
  • Alvin604497732
  • 2013年12月18日 17:20
  • 1116

Ubuntu下配置SVN自动发送邮件通知

Ubuntu下配置SVN自动发送邮件通知 1.安装相关软件:sudo apt-get install libauthen-sasl-perl      如果没安装libauthen-sasl-...
  • dddxxxx
  • dddxxxx
  • 2017年12月06日 10:25
  • 117

Linux学习-->如何通过Shell脚本实现发送邮件通知功能?

1、安装和配置sendmail 不需要注册公网域名和MX记录(不需要架设公网邮件服务器),通过Linux系统自带的mail命令即可对公网邮箱发送邮件。不过mail命令是依赖sendmail的,所以我...
  • m0_37683086
  • m0_37683086
  • 2017年08月30日 10:37
  • 273
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Linux 配置 SVN自动发送邮件
举报原因:
原因补充:

(最多只允许输入30个字)