Chinaunix首页 | 论坛 | 博客
  • 博客访问: 58354
  • 博文数量: 16
  • 博客积分: 411
  • 博客等级: 一等列兵
  • 技术积分: 205
  • 用 户 组: 普通用户
  • 注册时间: 2010-11-12 18:11
文章分类

全部博文(16)

文章存档

2013年(1)

2012年(14)

2010年(1)

我的朋友

分类: LINUX

2012-11-02 15:38:41

前一段时间遇到的系统故障,以下是操作过程:

大晚上收到该服务器内存超高告警,ps aux发现有大量的/usr/sbin/sendmail进程,一开始将其kill掉:

ps -ax | grep sendmail | awk '{print $1}' | wc –l 统计了以下有1230个

ps -ax | grep sendmail | awk '{print $1}' |xargs kill –9 杀掉这些进程

但过一段时间,问题仍然出现,同时还有/var目录磁盘使用情况超高。

使用du –sh *直接卡死,这说明/var/下有目录文件太多,感觉和上次的/usr/sbin/sendmail进程有关系,最后查询是/var/spool/postfix/maildrop/里堆积了大量文件,同时无法删除,但问题是该服务器上没有运行sendmail或postfix服务,为什么会有大量的sendmail进程出现?再ps aux查看除了senmail还有CRON和postdrop大量进程

CROND 1231

/usr/sbin/sendmail -FCronDaemon -i -odi -oem -oi -t  -f root 1230

/usr/sbin/postdrop -r 1232

三个进程数大概相同,再查询crontab计划任务

最后找出原因是计划任务出错

* */1 * * *  /usr/sbin/ntpdate time1.XX.XX 是这个计划任务有问题

time1.XX.XX 是之前的ntp server地址,后来ip变了,导致crond出错。

而crond在执行脚本时会将保持信息以邮件的形式发送给crond用户,而环境的postfix没有正常运行,导致邮件发送失败,都会堆积在/var/spool/postfix/maildrop/目录中,(可以在crontab中第一行增加MAILTO=""发送为空)

问题原因找到了,下面是操作过程:

1,更改正确的crontab

echo * */1 * * * /usr/sbin/ntpdate time2.XX.XX> /var/spool/cron/root

2,kill掉出错的进程

ps -ax | grep sendmail | awk '{print $1}' |xargs kill –9

ps -ax | grep CROND | awk '{print $1}' |xargs kill –9

ps -ax | grep postdrop | awk '{print $1}' |xargs kill –9

3,删除/var/spool/postfix/maildrop/里的文件

yum install rsync
mkdir /tmp/test
rsync --delete -a -H -v --progress --stats /tmp/test/ /var/spool/postfix/maildrop/

阅读(6225) | 评论(0) | 转发(1) |
给主人留下些什么吧!~~