场景:我的服务器有一天突然告警,提示iNode占用过高,排查发现是/var/spool/postfix/maildrop 目录文件太多导致的,一百多万个文件占用导致inode不够用。
解决方法:
删除/var/spool/postfix/maildrop 所有的文件
cd /var/spool/postfix/maildrop
ls | xargs rm -f # 必须要用这个命令。如果直接rm -f 提示参数太多无法删除
彻底解决方法:
在定时任务开头写入 MAILTO="",即不发邮件。
crontab -e
MAILTO=""
重启crond,必须要重启crond才会生效! systemctl restart crond
但是还有一个问题,删除了之后发现还是有文件生成。
解决方法:
使用cat 查看生成的文件内容,看下是哪个进程生成的。再具体排查原因。
我生成的文件内容是:
/etc/sudoers.d/zabbix is owned by uid 700, should be 0 ; TTY=unknown ; PWD=/ ; USER=root ; N
From: zabbixNAuto-Submitted: auto-generatedN8Subject: *** SECURITY information for VM-8-13-centos ***NN-8-13-centos :
可以判断可能是zabbix sudoer文件的问题。并且提示二楼这个文件uid是7000,因为zabbix 监控授权zabbix用户sudo访问某个脚本,sudoer文件权限如下:
ll /etc/sudoers.d/ -d
drwxr-x---. 2 700 root 4.0K Jan 31 16:49 /etc/sudoers.d/
根据报错信息看到这个目录确实uid是700,最后把它改成root即可解决问题。
chown root. /etc/sudoer.d