/var/spool/postfix/maildrop目录是干嘛的?Linux中/var/spool/postfix/maildrop目录文件过多怎么删除?

今天发现服务器硬盘报警,出现空间不足的情况,后经查看发现是/var/spool/postfix/maildrop有大量文件,但服务器本身没有启动postfix服务。

Linux中/var/spool/postfix/maildrop目录文件过多怎么删除?

继续上网查资料,发现是crontab每次执行任务后会发送邮件,接受者是在他的配置文件“/etc/crontab” 通过MAILTO=root来设置的,默认是root,如果执行输出没有十分必要要用邮件发送的话,可以修改此处。下面是两个解决

/var/spool/postfix/maildrop出现大量文件原因和解决办法

/var/spool/postfix/maildrop出现大量文件解决方法一

修改“/etc/crontab”将‘MAILTO=root’替换成‘MAILTO=""’修改之后没有成功,需要重启crond服务才可以。

也可从在crontab(crontab -e)中最前面直接加入中最前面直接加入MAILTO=""。

/var/spool/postfix/maildrop出现大量文件解决方法二

如果是我们不关心的备注型等输出我们完全可以让其输出到 /dev/null 这样就不会因为发送失败到导致在/var/spool/postfix/maildrop下面产出什么文件。例如:

*/10 * * * * /tmp/test.sh >/dev/null 2>&1

经过测试发现果然没有再出现新增的文件。当然如果输出内容有需要保存的话,可以输出到指定文件。比如这样:

*/10 * * * * /tmp/test.sh >/log/test.log

虽然都解决问题,但第一种改变了需要发送的机制,造成所有的都不能接收到邮件,且需要重启crond服务,对执行crontab比较多的,有一定影响;第二种感觉比较灵活,且改完立即生效。第一种方法比较彻底,免得以后再出现大量占用磁盘空间的情况出现。

重启crond服务:


1.在系统中有service这个命令时:
这个命令在red hat当中常用,有的linux发行版本中没有这个命令.

service crond start //启动服务
service crond stop //关闭服务
service crond restart //重启服务

2.linux发行版本没有service这个命令时:

/etc/init.d/cron stop
/etc/init.d/cron start

3.执行出现 /bin/systemctl 。。。。说明是新版的可用以下命令操作

/bin/systemctl restart crond.service  #启动服务
/bin/systemctl reload  crond.service  #重新载入配置
/bin/systemctl status  crond.service  #查看crontab服务状态

删除maildrop下所有文件:

[admin@iZ25tr5e048Z ~]$ sudo rm -rf /var/spool/postfix/maildrop/*
[admin@iZ25tr5e048Z ~]$ -bash: /bin/rm: Argument list too long

当目录下文件太多时,用rm删除文件会报错:

-bash: /bin/rm: Argument list too long 提示文件数目太多。

解决的办法是使用如下命令:

ls | xargs -n 10 rm -fr ls

输出所有的文件名(用空格分割) xargs就是将ls的输出,每10个为一组(以空格为分隔符),作为rm -rf的参数也就是说将所有文件名10个为一组,由rm -rf删除

使用上面的方法成功了,下面是在网上找到的其他方法

1.先删除maildrop目录下的通知邮件文件

find /var/spool/postfix/maildrop/ -type f |xargs rm -rf

2.停止当前用户继续向maildrop目录中发送邮件

解决方案:

在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

命令:crontab -e 解释:编辑当前用户的cron服务

官方QQ群号码:922069959(空)1093596563(空)

您可能感兴趣的文章

留言评论

发表回复

您的电子邮箱地址不会被公开。 必填项已用*标注

Captcha Code