Chinaunix首页 | 论坛 | 博客
  • 博客访问: 745514
  • 博文数量: 38
  • 博客积分: 587
  • 博客等级: 中士
  • 技术积分: 579
  • 用 户 组: 普通用户
  • 注册时间: 2011-10-17 14:32
文章存档

2013年(15)

2012年(23)

分类: LINUX

2012-04-06 15:45:01

上月Mobilink项目,客户生产系统的linux server中,在/var/spool/postfix/maildrop目录下堆积了100w个小文件,使当前分区使用到86%,监控脚本不断报警。

1,原理分析:
通过调查,是由于linux在执行cron时,会将cron执行脚本中的output和warning信息,都会以邮件的形式发送Cron所有者, 而由于客户环境中的sendmail和postfix没有正常运行,导致邮件发送不成功,全部小文件堆积在了maildrop目录下面,而且没有自动清理转换的机制,所以长达一年的时间,此目录已堆积了大量的文件。查看man cron的信息,可以知道会发送给cron owner.

[root@mw1 postfix]# man cron

DESCRIPTION

Cron searches /var/spool/cron for crontab files which are named after accounts in crontabs found are loaded into memory. Cron also searches for /etc/crontab and the

files in the directory, which are in a different format (see crontab(5) ). Cron then wakes up every minute, examining all stored crontabs, checking each command to see

if it should be run in the current minute. When executing commands, any output is mailed to the owner of the crontab (or to the user named in the MAILTO environment

variable in the crontab, if such exists).


(注意:如果sendmail或者postfix正常运行,则会在/var/mail目录下产生大量的邮件,也会堆积)


2, 解决方案:

在cron的第一行加入 MAILTO=""便可,这样执行当前用户的Cron时,不会发送邮件。

Please add the MAILTO="" in the head of cron , please see the blow sample.

[root@mw1 postfix]# crontab -e

MAILTO=""

*/5 * * * * /opt/OCMonitor/bin//ocSysMonitor -top -sar –netfmt


2012-03-28.



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