硬盘也无法写入文件可能性分析,本次为 inode 占用 100%

沃森博客 2019年4月13日13:16:43服务器评论155阅读模式

本次出问题的是一个 tp5 站点, 提示 404,根据以往经验,是 Runtime 内文件没有写入成功。

故障分析:执行 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 {} \;

最终问题得以解决,总结一下,硬盘无法写入一般这几类问题存在:
1、没有权限
2、硬盘满了,可以 df -h 或者某个目录 du -h 可以看到数值
3、lnode 100%了, 对应删除。

沃森博客
  • 本文由 发表于 2019年4月13日13:16:43
  • 本文来自互利网收集整理,问题反馈联系邮箱:wosnnet@foxmail.com,转载请务必保留本文链接:https://wosn.net/1691.html

发表评论