系统磁盘优化——"/var/spool/postfix/maildrop"

文件清理

最近某服务器磁盘空间告警,在排查过程中发现"/var/spool/postfix/maildrop"目录下堆积了很多小文件,起初想直接删除,但是使用rm删除是提示“参数列表过长”,后来使用rsync来清楚垃圾文件:

# 创建一个临时空文件夹
mkdir /tmp/blankdir
# 清理/var/spool/postfix/maildrop
rsync -av --delete /tmp/blankdir/  /var/spool/postfix/maildrop/
# rsync选项说明:
# --delete-before 接收者在传输之前进行删除操作
# --progress 在传输时显示传输过程
# --a 归档模式,表示以递归方式传输文件,并保持所有文件属性
# --H 保持硬连接的文件
# --v 详细输出模式
# --stats 给出某些文件的传输状态

注意:

  • 不管是使用rm还是rsync,在清理文件之前一定要仔细确认文件是否有用,避免误操作。
  • 使用rsync时空目录的路径后要带上"/"

追根溯源

在清理完文件后不久又有一次内存告警,检测发现有大量的“CRON、sendmail、postdrop”进程,同时还发现“/var/spool/postfix/maildrop”又有大量文件生成,Why?

于是开始排查,经过一番“海底捞”,真相终于浮出水面:

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

既然定位到是cron惹的祸,那就先把“sendmail、postdrop”干掉,解决燃眉之急,然后查找解决方案吧,办法如下:

  • 将/etc/crontab文件中MAILTO="root"改成MAILTO=""(该办法只对crontab下的cron有效);
  • 在所有cron的第一行加入 MAILTO=""便可,这样执行当前用户的Cron时,就不会发送邮件了
    MAILTO=""
    * * * * * root /usr/sbin/python /tmp/test.py
    

之后再次清理“/var/spool/postfix/maildrop”下的垃圾文件,观察一下,没有文件再生成,问题解决!

原文地址:https://www.cnblogs.com/liujiliang/p/9852998.html

时间: 2024-11-05 19:00:44

系统磁盘优化——"/var/spool/postfix/maildrop"的相关文章

Linux 中 /var/spool/postfix/maildrop 占用空间很大问题

摘要 一台运维主机上面没有跑什么特殊服务,所以没有添加监控告警.今突然执行命令执行不了发现是因为磁盘慢了导致.排错发现是因为目录/var/spool/postfix/mailfdrop 过大导致. 通过了解发现因为: 由于 Linux 在执行 cron 时,会将 cron 执行脚本中的 output 和 warning 信息,都会以邮件 的形式发送 cron 所有者, 而由于客户环境中的 sendmail 和 postfix 没有正常运行,导致邮件 发送不成功,全部小文件堆积在了 maildro

/var/spool/postfix/maildrop 下有大量文件

参考链接:http://www.shangxueba.com/jingyan/121368.html /var/spool/postfix/maildrop  下有大量文件,怎么会有这么多的文件呢 在网上搜索之后明白是mail没有成功的邮件.由于linux在执行cron时,会将cron执行脚本中的output和warning信息,都会以邮件的形式发送cron所有者, 而我的服务器中关闭了postfix,导致邮件发送不成功,全部小文件堆积在了maildrop目录下面.如果sendmail或者pos

/var/spool/postfix/maildrop/ 是否可清理

故障原因: 今天查看硬盘剩余的容量,发现'/'目录下占用了大量的空间:可我在这个目录下面没有放什么东西:仔细查看在/var/spool/postfix/maildrop/ 中发现了大量的文件.怎么会有这么多的文件呢,先删除. 在网上搜索之后明白是mail没有成功的邮件.由于linux在执行cron时,会将cron执行脚本中的output和warning信息,都会以邮件的形式发送cron所有者, 而我的服务器中关闭了postfix,导致邮件发送不成功,全部小文件堆积在了maildrop目录下面.如

/var/spool/postfix/maildrop小文件太多造成inode索引使用完解决

/var/spool/postfix/maildrop 小文件太多造成inode索引使用完解决办法 问题表现和检查: 1.运行df -i / 查看inode使用是否满: 2.查看/var/spool/postfix/maildrop是否有非常多的小文件,ls直接卡死等情况: 解决:1.cd /var/spool/postfix/maildrop: ls | xargs rm -rf; 2.vi /etc/crontab :将‘MAILTO=root’替换成‘MAILTO="",然后se

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

今天发现服务器硬盘报警,出现空间不足的情况,后经查看发现是 /var/spool/postfix/maildrop 有大量文件,但服务器本身没有启动 postfix服务. 继续上网查资料,发现是crontab 每次执行任务后会发送邮件,接受者是在他的配置文件 "/etc/crontab" 通过 MAILTO=root' 来设置的,默认是root,如果执行输出没有十分必要要用邮件发送的话,可以修改此处. 下面是两个解决方法 方法一: 修改"/etc/crontab"

/var/spool/postfix

centos磁盘优化,发现/var/spool/postfix/maildrop下有大量文件. cron进程默认会将计划任务中所运行的脚本的警告.错误信息或者脚本输出信息发送给计划任务的所有者,而由于系统的postfix默认没有打开,所以这些邮件放到了邮件队列maildrop目录中,如果计划任务比较多,而且都有信息输出或者有错误,那么maildrop中的小文件肯定会越来越多.此时如果启动postfix服务,那么这些文件都会发送给计划任务的所有者,maildrop目录中的小文件没有了,却到了/va

linux系统基础优化

1.Linux系统基础优化 一.关闭SELinux功能 Selinux是什么? 安全工具,控制太严格,生产环境不用它,使用其他安全手段. 简介: SELinux带给Linux的主要价值是:提供了一个灵活的,可配置的MAC机制. Security-Enhanced Linux (SELinux)由以下两部分组成: 1) Kernel SELinux模块(/kernel/security/selinux) 2) 用户态工具 SELinux是一个安全体系结构,它通过LSM(Linux Security

在操作Centos系统时经常出现You have new mail in /var/spool/mail/root提示怎么回事?

例如,在命令窗口中输入date查看时间,下面会出现一行提示 实际上,该功能为Linux操作系统核对系统资源状态并汇总,默认发送到root用户的/var/spool/mail/root目录,并在标准输出中提示如上的信息. 我们可以通过下面的方法禁止这样的提示: 1.在/etc/profile文件尾部写入“unset MAILCHECK”. ~]# echo "unset MAILCHECK" >> /etc/profile 2.重新运行一次该文件. ~]# . /etc/pr

linux系统基础优化和安全重点小结

本文描述一些基本的系统优化知识点,为适应批量配置,所有代码为非交互式配置方法,可在crt中通过命令窗口做简单的批量处理. 不用root登录管理系统,而以普通用户登录通过sudo授权管理.作为一个例子这里新建一个用户,并做sudo提权 useradd gotimmygo echo 123456|passwd --stdin gotimmygo \cp /etc/sudoers{,ori} echo "gotimmygo ALL=(ALL) NOPASSWD:ALL">>/et