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

2019年4月13日13:16:43 发表评论 3

本次出问题的是一个 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%了, 对应删除。

历史上的今天:

  • 博主微信
  • 赶快加我来聊天吧
  • weinxin
  • 站长技术资源群
  • 群号:483950522
  • weinxin

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: