您的位置:首页 > 其它

SVN1.7.14上配置post_commit hooks,实现自动发邮件功能

2016-05-11 10:16 477 查看
操作系统是centos7. SVN1.7.16 的post-commit.tmpl中提供的mailer.cf文件需要安装python,很麻烦。所以仍旧使用sendmail 发送邮件

1. 使用sendmail,安装sendmail服务
#yum install sendmail

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

3. 修改/etc/mail.rc 增加内容

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

4. 增加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

5. 修改post-commit脚本

#!/bin/sh

export LC_CTYPE=zh_CN.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"

6. 自动sendmail服务

#systemctl enable sendmail.service
#systemctl start sendmail.service

注意,如果sendmail服务启动很慢,很可能是因为解析本机的域名慢,需要修改/etc/hosts文件。
添加: 192.168.99.35 svnhost. svnhost
(主机名后面一定要加“."啊)

7. 可以测试

mail -s "test" bbb@126.com



内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: