Linux Inodes占用100%问题解决

Posted by 墨晴 on July 15, 2019

运维点滴积累

Linux Inodes占用100%问题解决

问题描述: root用户无法切换至work用户,报错:Resource temporarily unavailable。查资料所知,新建用户Linux系统会限制用户的最大进程数,应用程序占满进程数过后,就会报资源不可用的错误信息

执行df -h发现磁盘利用率还好 执行df -i发现根目录inodes值利用率为100% 【不可切换用户的故障点 执行下面的脚本命令可查到哪个目录下文件最多

for i in /*; do echo $i; find $i | wc -l; done
或
for i in /*; do echo $i; find $i |wc -l|sort -nr; done

注:如果确定是某个目录下面,则/转换为该目录绝对路径,如/var/spool,则使用 for i in /var/spool/*; do echo $i; find $i | wc -l; done 最终发现/var/soppl目录最多,目录下全是crontab发邮件失败之后产生的文件,由于linux在执行cron时,会将cron执行脚本中的output和warning信息,都会以邮件的形式发送cron所有者, 服务器中关闭了postfix,导致邮件发送不成功,全部小文件堆积在了maildrop目录下面。如果sendmail或者postfix正常运行,则会在/var/mail目录下也会堆积大量的邮件。 解决方法:

修改“/etc/crontab”

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

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

在删除/var/soppl目录时,直接rm -fr *报错:-bash: /bin/rm: Argument list too long 解决方案:

find . -name "*" | xargs rm -rf '*'