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
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
相关文章推荐
- Linux内核版本发布时间整理,linux内核发布时间
- TensorFlow学习笔记之三——适合入门的一些资源
- redis入门指南-安装redis
- TCP/IP详解学习笔记(1)-基本概念
- 解决Ubuntu下Firefox+OpenJDK没有Java插件的问题
- 关于width与padding
- 回车和换行
- VMware EXSi5.5 添加虚拟共享磁盘
- 【bzoj3702】二叉树 权值线段树
- jq输入框内容实时预览插件
- 降低gcc版本
- Cocoapods trunk
- Android 日期工具类DateUtil
- 获取元素CSS值之getComputedStyle方法
- 广播
- mysql详解--数据库基本概念
- 计算机组成.运动中的小数点.浮点数
- 自动实现接口的实例,mybatis就是这样实现的
- 证书
- 支付宝支付笔记