Linux云服务器操作系统类

 

inodes被占满

更新时间 2023-09-06

背景介绍

Linux 系统下文件数据储存在"块"中,而文件的元信息,例如文件的创建者、文件的创建日期、文件的大小等都存储在索引中,这个索引叫做 inode。inode 也占用硬盘空间,硬盘格式化的时候,操作系统自动将硬盘分成两个区域。一个是数据区,存放文件数据;另一个是inode 区(inode table),存放 inode 所包含的信息。

inode占满

inodes 使用完与存储空间使用完相似,都是创建不了文件或无法正常执行一些命令。若发现磁盘空间还有,但无法创建文件,可以排查下是否是 inode 空间占满导致。

  • 执行df -i命令,可以查询 inode 的使用情况。

  • 或者在平台的云服务器详情页中可以看到 inode的监控。

解决方法

分析占用数量多的目录

执行for i in /*; do echo $i; find $i | wc -l; done命令,分析根目录下的每个二级目录下有多少个文件。然后逐层进入 inode占用最高的目录,继续执行指令,逐步定位占用过高空间的文件或目录。

删除文件

定位到相应目录后,可以执行 find -exec命令,来删除无用的临时文件。/list 填写相应目录。

find /list -type f -exec rm {} \;

除了无用的临时文件,0字节的文件也会占用 inode,应该也释放,使用以下命令遍历寻找0字节的文件,并删除。

find /list -type f -size 0 -exec rm {} \;

或者使用 xargs 命令删除大量小文件。

cd /list
ls | xargs rm -f
这篇文档解决了您的问题吗?
0
0