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防火墙等这些准备工做已经就绪,再去进行上层的开发或者配置,不要一味怀疑本身的程序或者上层执行有问题。当纠结于那台服务器能够正确执行,为啥这台就不行呢的时候,要充分考虑两者运行环境的差别,不然问题得不到很好的解决。
python

相关文章
相关标签/搜索