2015年(68)
分类: 系统运维
2015-08-31 17:23:46
早上收到一台服务器的磁盘根分区告警,登录服务器检查后发现/var/spool/clientmqueue/目录下存在大量文件,先看看文件内容:
[root@301 clientmqueue]# file qfp9L2S2PU020380
qfp9L2S2PU020380: Non-ISO extended-ASCII text
[root@301 clientmqueue]# strings qfp9L2S2PU020380
T1319164082
K1319165415
P1297004
MDeferred: Connection refused by [127.0.0.1]
$_market@localhost
${daemon_flags}c u
Smarket
Aappmarket@localhost.localdomain
MDeferred: Connection refused by [127.0.0.1]
C:appmarket
rRFC822; market@localhost.localdomain
RPFD:appmarket
H?P?Return-Path: <
H??Received: (from market@localhost)
by localhost.localdomain (8.13.8/8.13.8/Submit) id p9L2S2PU020380;
Fri, 21 Oct 2011 10:28:02 +0800
H?D?Date: Fri, 21 Oct 2011 10:28:02 +0800
H?x?Full-Name: CronDaemon
H?M?Message-Id: <201110210228.p9L2S2PU020380@localhost.localdomain>
H??From: root (Cron Daemon)
H??To: appmarket
H??Subject: Cron <market@301> /opt/appmarket/shell_sh/kalaokftpget.sh >/home/market/shell_sh/kalaokftplog.txt
H??Content-Type: text/plain; charset=UTF-8
H??Auto-Submitted: auto-generated
H??X-Cron-Env: <SHELL=/bin/sh>
H??X-Cron-Env: <HOME=/opt/market>
H??X-Cron-Env: <PATH=/usr/bin:/bin>
H??X-Cron-Env: <LOGNAME=market>
H??X-Cron-Env: <USER=market>
从上面的文件内容可以看出,这是一个邮件头,发邮件的原因与定时任务 "/opt/market/shell_sh/kalaokftpget.sh >/opt/market/shell_sh/kalaokftplog.txt" 有关。
原来,crontab定时运行的任务,当任务发生问题时会有错误信息输出,这时crontab会自动利用sendmail将输出内容以邮件的形式发给运行任务的用户;而sendmail在提交一个邮件时,会先将需发送的邮件内容copy到 "/var/spool/clientmqueue"目录,然后调用sendmail的MTA将内容从"/var/spool/clientmqueue" copy到/var/spool/mqueue并发给目标收件人,如果MTA没有启动或调用失败,那么这些需发送的邮件内容将会一直累积到/var/spool/clientmqueue目录,这也是这我们这台服务器/var/spool/clientmqueue目录存在大量文件的原因,之前为了安全我们关掉了服务器一些不必要的服务,其中就包括了sendmail。
解决办法:
(1)先清除这些文件解决目前的问题
[root@301 clientmqueue]#ls | xargs rm -f
(2)将定时任务出错时的错误信息定向到黑洞,即不要输出错误信息
[root@301 clientmqueue]#crontab -e -u market
5 * * * * /opt/appmarket/shell_sh/kalaokftpget.sh >/home/market/shell_sh/kalaokftplog.txt 2>/dev/null