美文网首页
linux有磁盘空间却显示不足 linux中inode使用率过高

linux有磁盘空间却显示不足 linux中inode使用率过高

作者: 万事俱备就差一个程序员了 | 来源:发表于2022-12-25 11:13 被阅读0次

    linux中inode使用率过高处理办法

    前几天收到监控告警,说Inode节点空间不足,之前没处理过这种问题,所以记录一下处理过程,便于以后查阅。

    Inode使用率高并不会影响系统正常运行和新文件的创建,但是当使用率达到100%的时候,此时虽然磁盘还有空间,也不能创建新的文件了。

    这是因为,文件在存储到磁盘中的时候,会同时用到inode和block,inode保存文件属性信息,包括文件名,大小,权限,时间,存储位置等,而block中则保存实际的数据,

    所以如果inode用完的话,即使磁盘还有空间也无法创建新文件了。

    发生这种情况的原因一般是系统中小文件过多,占用了大量的inode节点,找到对应目录,删除一些文件就可以了。

    说明:以下执行结果并不是真实告警值,只是操作举例。

    1.查看磁盘分区和inode使用情况

    df-h #查看磁盘分区使用情况df-ih #查看inode节点使用情况

    2.查找并删除临时文件

    ll -rt /tmp |wc-lfind/tmp -type f -execrm{} \;

    3.删除0字节的文件

    find/home -type f -size0-execrm{} \;

    4.查找包含大量文件的目录并删除

    foriin/*; do echo $i; find $i |wc -l; done

    for i in /var/*; do echo $i; find $i |wc -l; done

    大概率在/var目录下的/var/spool中有大量文件,进入该目录查看

    foriin/var/spool/*; do echo $i; find $i |wc -l; done

     发现 /var/spool/postfix/ 目录下有大量文件,继续进入该目录查看

     说明:/var/spool/postfix/ 下面生成那么多的文件是因为crontab定时任务导致的,定时任务执行后发送邮件告知联系人,但是发送失败就会在postfix下生成,所有就产生了这么多的垃圾文件。

    foriin/var/spool/postfix/*; do echo $i; find $i |wc -l; done

     可以看到,文件主要集中在/var/spool/postfix/maildrop目录下,进入该目录清除即可

     执行rm命令直接删除,可能会报错参数列表太长,可以通过一下方式进行删除

    ls|xargs-n500rm-rf #-n表示一次传递参数的个数

    执行完之后,再次用df -ih查看Inode节点使用率,发现恢复正常。

    分类: Linux

    相关文章

      网友评论

          本文标题:linux有磁盘空间却显示不足 linux中inode使用率过高

          本文链接:https://www.haomeiwen.com/subject/bhniqdtx.html