Linux inode节点满的解决方法

什么是inode

文件储存在硬盘上,硬盘的最小存储单位叫做”扇区”(Sector)。每个扇区储存512字节(相当于0.5KB)。
操作系统读取硬盘的时候,不会一个个扇区地读取,这样效率太低,而是一次性连续读取多个扇区,即一次性读取一个”块”(block)。这种由多个扇区组成的”块”,是文件存取的最小单位。”块”的大小,最常见的是4KB,即连续八个 sector组成一个 block。
文件数据都储存在”块”中,那么很显然,我们还必须找到一个地方储存文件的元信息,比如文件的创建者、文件的创建日期、文件的大小等等。这种储存文件元信息的区域就叫做inode,中文译名为”索引节点”。
每一个文件都有对应的inode,里面包含了与该文件有关的一些信息。

查看

1
df -ih

查找满的目录

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

依次对所查找的目录执行以上目录,即可找到哪个目录文件最多,一般情况下是频繁的写小文件或者linux邮件服务导致。

删除占用文件多的目录

直接删除目录很慢,进入目录查看文件可能会卡死

1
find dir -type f -name '*' | xargs rm

或者

1
2
cd dir
ls | xargs rm -f

参考:
理解inode