Chinaunix首页 | 论坛 | 博客
  • 博客访问: 1259500
  • 博文数量: 264
  • 博客积分: 10772
  • 博客等级: 上将
  • 技术积分: 2325
  • 用 户 组: 普通用户
  • 注册时间: 2007-07-25 11:54
文章分类

全部博文(264)

文章存档

2012年(4)

2011年(51)

2010年(31)

2009年(57)

2008年(51)

2007年(70)

分类: LINUX

2012-01-30 14:38:06

一直没好好研究sendmail这个邮件处理的东东,结果招来不少麻烦。

先把由它导致的一些问题及解决方法(很山寨,很有效)列出来,日后再慢慢学习。

1.启动过程超慢。
现象:重启服务器或#service restart sendmail时,停留在Starting sendmail 和 sm-client不动了,可能需要几分钟甚至十几分钟,让人心碎。
原因:DNS解析失败。通常是配置了错误的DNS服务器地址或网络故障无法访问DNS;另一种可能是hosts文件配置有问题,无法解析(反向?)本地主机名。
解 决:如果是单机运行linux,可以删除DNS设置文件/etc/resolv.conf,或者干脆停用sendmail:#chkconfig sendmail off。如果有网络连接,则重点检查/etc/resolve.conf 和 /etc/hosts。首先确定resolve.conf配置是否正确,如果没有DNS则可以把它删掉,或保留"search localdomain",注释掉“nameserver xxx”等内容。其次检查hosts文件,看看有没有把本机的主机名写在里头,如果写了而对应的IP地址不是127.0.0.1的话很可能会出问题。假定 /etc/sysconfig/network配置的主机名是Server001,则hosts文件首行应改为
127.0.0.1               localhost.localdomain localhost Server163
另:DNS在linux系统中很能制造麻烦,配置错误会导致很多程序运行非常缓慢,即使有的程序与网络无关。

2.系统资源耗尽。
今天上海有个服务器不响应了,ssh,ftp统统不能登陆。现场重启才恢复,初步判定是内存耗尽。
检查/var/log/message,从昨天中文开始就只记录了数据库检查点操作的信息,而平时的一堆crond信息都没有了。
不 经意中发现/var/spool/mail/root文件好大个,2G的样子,运行mail半天都打不开,于是试着把它删掉。可好似不一会 儿,mailbox又开始暴涨,又将近1.5G了。是不是“邮箱”有2G的限制,新的mail写不进去,放到什么地方缓存起来了,清空“邮箱”后,又从缓 存写回来。man sendmail后,发现/var/spool/mqueue里几十万个文件,一面删除一面top,top里好多sendmail进程,一直闲置的 swap分区尽然也消耗大半。原来又是sendmail搞的鬼。
系统里有很多分钟级甚至秒级的crond,每次运行这些crond,系统都要给root发一个mail,同时写到/var/log/message里。message可以自动滚存,而mail不会,久而久之mailbox就撑爆了,mqueue机制也让内存慢慢耗尽。
首 先停用sendmail,删除mailbox,清空mqueue目录。删除缓存邮件时,rm * -f提示Argument list too long,参考别人的文章用 ls|xargs rm -f 达成。参看
现在还没找到彻底解决的方法,要么停用或研究sendmail配置,要么看看crond可不可以不用每次发邮件,总之还要学习。
阅读(2073) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~