问题现象:
crontab
任务运行时,/var/spool/mail/root
之前一直会有相应的 mail
邮件生成,邮件中详细记录了 crontab
任务的基本信息、执行时间、执行结果、报错等信息,可以说非常的有用。但是不知道为什么1月7日之后没有新的邮件生成了,最后一条邮件记录正好是 crontab
命令执行失败的消息,不由得心中一惊,以为是这条执行失败的 crontab
命令把 crontab
给卡住了,急忙进行测试,发现 crontab
是可以正常执行的,只是不知道为什么不发送邮件了。
排查过程
查看 crontab 日志
通过某度搜索得知,crontab
日志文件路径为 /var/log/cron
,查看最后10行输出,发现正常有 MAIL
相关的异常日志 MAIL (mailed 83 bytes of output but got status 0x004b#012)
,过滤该关键字发现有大量的异常日志存在。
从字面意思来看,邮件确实发送了,但是状态不正常。
查看 maillog 日志
继续搜索发现,邮件发送情况的日志记录在 /var/log/maillog
中,查看该日志提示磁盘空间不足
查看各目录占用情况,发现 /
挂载点已经使用100%:
问题解决
通过排查,发现 /tmp
目录下的临时文件过大,占用了过多的空间,导致 /
挂载点可用空间异常,删除无用的临时文件之后,/
挂载点的可用空间马上恢复正常了,查看 /var/spool/mail/root
,邮件也可以正常生成了。问题完美解决。