• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

删除maildrop-目录下大量文件以及避免后续再次发生

linux 搞代码 3年前 (2022-03-03) 43次浏览 已收录 0个评论

这两天遇到一个问题:
1、问题景象
一个linux主机上报存储过大的告警,/var/spool/postfix/maildrop 目录下的文件多大400万个,占用存储30G,ls、rm等命令执行就卡主,抽查一两个文件,文件名是相似095285C63AF6这样的12位16进制的数字程序组合,文件大小都是几K,文件内容没有实质性的意义。

2、问题起因:网上查了下,具体如下
该主机上有一些crontab,执行频率比拟高,每次执行都会默认将output和warning信息邮件发送给crontab的属主,linux没有配置邮件性能,会导致有你发送不进来,从而以文件的模式沉积在/var/spool/postfix/maildrop目录下。

3、问题解决方案
3.1、长期计划:这些文件没有理论作用,手动删除。
手动删除400多万个小文件,rm -f 删除执行不动,不晓得执行效率,如果始终放在那里执行,也不确定会不会因客户端会话过期导致执行失败。而且rm -f 如果文件过多,也会报错说传递的参数过大,导致无奈删除。
自动化脚本:通过 ls -f1 /var/spool/postfix/maildrop/* > ~/tmp.txt ,将文件名清单写入到临时文件中,而后通过shell脚本,读取文件清单,一个个文件删除,加上语句,也能够晓得以后删除的是哪个文件,脚本内容如下。

#!/bin/bash
cd /var/spool/postfix/maildrop/
ls -f1 /var/spool/postfix/maildrop/* > /root/tmp.txt
for i in `cat /root/tmp.txt`
do
echo $i
rm -f $i
done
echo "complete!"

3.2、彻底解决计划:禁用crontab的邮件发送
在每个用户的crontab下减少邮件配置的语句,如下示例:

 MAILTO=""
 */5 * * * *  /bin/bash
 */2 * * * * /bin/sh

4、总结
耗时最长的是手动删除400多个文件,毕竟积攒了好几年的货色, shell脚本不肯定是最快、最优的形式,比方是否能够间接删除maildrop文件夹,删除完后再创立一个maildrop文件夹,不确定是否可行,然而是做法上最简略的一种,能解决以后问题就行,看问题紧急、重要水平和影响。


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:删除maildrop-目录下大量文件以及避免后续再次发生
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址