inode占用100%时硬盘无法写入文件故障处理

来源:互联网 发布:nginx lua redis 灰度 编辑:程序博客网 时间:2024/05/18 01:17

故障现象:分区无法写入文件

故障分析:执行df -h命令发现空间占用不到70%,执行df -hi,发现某分区IUse%值为100%,说明inode已经用完,应该是某些目录下存在大量的小文件导致。

解决办法:

大量小文件分布有两种可能,一是只有一个或少量目录下存在大量小文件,这种情况我们可以使用如下命令来找出这个异常目录:
find / -type d -size +10M
此命令作用是找出大小大于10M的目录(目录大小越大,表示目录下的文件越多)。
第二种可能是,大量的小文件分布在大量的目录下,这时候上面的命令可能找不出异常的目录,需要以下命令:
cd /
find */ ! -type l | cut -d / -f 1 | uniq -c
此命令作用是找出目录下文件总数,可能需要执行多次,直到找出具体的目录。比如上面的命令找出了/data目录下存在大量的小文件,但/data/目录还有很多目录,这时候我们还需要继续执行:
cd /data
find */ ! -type l | cut -d / -f 1 | uniq -c
直到找出具体的目录。

如果可以直接删除节点满的文件夹:

find . -type f -exec rm {} \;
还可以按照文件的inode节点删除文件
find . -inum 342137 -exec rm -i {} \;

0 0
原创粉丝点击