`
sharong
  • 浏览: 485481 次
  • 性别: Icon_minigender_1
  • 来自: 北京
博客专栏
D1667ae2-8cfc-3b68-ac7c-5e282789fa4a
论开源
浏览量:8470
7eb53364-fe48-371c-9623-887640be0185
Spring-data-j...
浏览量:12774
社区版块
存档分类
最新评论

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

 
阅读更多
svn可以实现在commit提交时,使用hook钩子功能,向指定的邮箱发送提交注释comment/log及内容变化的邮件,以方便对之进行监控。
具体的描述就是,
1.当某个账号提交代码/文档时,使用钩子功能,调用仓库的hooks目录下的post-commit文件,实际上是执行一个shell文件,因此要求此文件具有执行权限
2.在shell文件中,通过显式的编码方式运行mailer.py,根据mailer.conf文件中配置的邮件服务器,from address,to address,reply to等,向指定的邮箱发送带svn提交时各种信息的邮件。
3.如果采用这种方式配置邮件通知功能,根据上面的描述,你的操作系统中需要有python运行环境,一般来说,版本应该不小于2.4.x
4.以上具体配置可参考官方wiki,链接如下:
https://ctf.open.collab.net/sf/wiki/do/viewPage/projects.svnedge/wiki/CommitMailerOnLinux

我按照官网给出的办法在一台linux测试机上配置之后,很快就可以收到邮件了,一切运行正常,然而,配置到公司内网的svn服务器上后,运行的时候不出任何错误提示,但就是收不到邮件。按道理说,linux系统下,执行shell命令没有任何错误提示,说明此命令运行是正确的。但收不到邮件,这是怎么回事?
于是开始比较两个操作系统的版本等信息,python的版本等等,发现是不完全一样。测试机使用centos 6.4, python 2.6.6版本,而svn服务器则是Redhat kiTangka 5.8,python 2.4.3.难道是因为这些原因?
至此有些一筹莫展,甚至一度想如果实在没有办法,只能是做数据迁移了。

就在这时,请教了一下公司的运维同事,事情开始峰回路转。运维首先是在svn服务器上ping了一下smtp邮件服务器地址,发现ping不通,而测试机则可以。
那么需要在svn服务器上配置dns解析,配置之后马上可以ping通邮件服务器了,但还是无法收到邮件。
运维同事这时又不慌不忙的开始查看svn服务器的sendmail服务是否正确,果然,这台机器的mail服务没有启动,不能发送/接收任何邮件,于是启动mail服务,然后。。。之前未发出去的邮件,已经像雪片般开始不断的延迟发送了。
至此全部配置成功!

这次问题的最终解决,给自己带来最大的经验教训就是,在linux系统中,其实在任何系统中都是这样,如果要用到网络环境以及某种服务时,比如发送邮件,提供web http服务等,一个非常重要的前提就是,在系统中基础网络,dns,ip配置,邮件服务甚至iptables防火墙等这些准备工作已经就绪,再去进行上层的开发或者配置,不要一味怀疑自己的程序或者上层执行有问题。当纠结于那台服务器可以正确执行,为啥这台就不行呢的时候,要充分考虑二者运行环境的差异,否则问题得不到很好的解决。
2
2
分享到:
评论
4 楼 sharong 2015-01-29  
yixiandave 写道
wwwcomy 写道
=。= 翻了下LZ的帖子 貌似已经在IT圈摸爬滚打多年了~

话说 突然就想起了  程序猿犯下的低级错误那篇帖子, 比如远程控制时候试图重装网卡驱动什么的。。

上次远程调试虚拟机然后手贱清除了iptables的所有白名单。。。

我们这里都直接stop了iptables防火墙。。。
3 楼 yixiandave 2015-01-28  
wwwcomy 写道
=。= 翻了下LZ的帖子 貌似已经在IT圈摸爬滚打多年了~

话说 突然就想起了  程序猿犯下的低级错误那篇帖子, 比如远程控制时候试图重装网卡驱动什么的。。

上次远程调试虚拟机然后手贱清除了iptables的所有白名单。。。
2 楼 sharong 2015-01-28  
wwwcomy 写道
=。= 翻了下LZ的帖子 貌似已经在IT圈摸爬滚打多年了~

话说 突然就想起了  程序猿犯下的低级错误那篇帖子, 比如远程控制时候试图重装网卡驱动什么的。。

嗯,确实有10+年经验了哦
1 楼 wwwcomy 2015-01-28  
=。= 翻了下LZ的帖子 貌似已经在IT圈摸爬滚打多年了~

话说 突然就想起了  程序猿犯下的低级错误那篇帖子, 比如远程控制时候试图重装网卡驱动什么的。。

相关推荐

Global site tag (gtag.js) - Google Analytics