Linux 索引节点inode 100%清理教程

问题场景

1、网站无法上传文件,网站访问报错,缓存文件无法生成。

2、网站SESSION莫名其妙失效。

3、操作数据库查看表结构出现类似的报错

can not create to file /tmp/xxx Errcode:28

都有可能是/tmp缓存文件无法创建。

可能出现的原因

1、磁盘已满。可以用df -TH命令进行查看。

2、索引节点已满。可以用df -i命令进行查看。

df -i

2.png

上图所示的结果分析,系统盘的索引节点inode已达到100%,系统运行出现故障。

索引节点已满的排查解决方案

1、 查看根路径下各个文件夹的文件数

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

以上代码中,/*表示在根目录查找,结果会列出每个文件夹占在用的节点数量,可以情况逐步分析。

如发现var文件夹内容过多,可以cd进入var目录再执行,只需将对应路径进行修改即可。

cd var

for i in /var/*; do echo $i; find $i |wc -l|sort -nr; done   

举例说明,假如通过反复排查,发现/var/spool/postfix/maildrop/下有180W+文件。解决方法就是进入到对应目录中,删除对应文件夹下的文件,但执行rm -rf ./* 通常会报错,提示参数列表过长。原因是文件太多了。

换种方式进行删除,如下所示,但一定要注意,先cd到需要删除的目录下,然后再执行删除操作

# 一定要先进入要删除的目录下
cd /var/spool/postfix/maildrop/ 

# pwd命令可以显示当前路径
pwd

# 一定要先确认当前路径再执行删除操作
find . -name "*" | xargs rm -rf 

再次强调,一定要注意,先cd到需要删除的目录下,然后再执行删除操作

相关文章

文章浏览阅读1.8k次,点赞63次,收藏54次。Linux下的目录权限...
文章浏览阅读1.6k次,点赞44次,收藏38次。关于Qt的安装、Wi...
本文介绍了使用shell脚本编写一个 Hello
文章浏览阅读1.5k次,点赞37次,收藏43次。【Linux】初识Lin...
文章浏览阅读3k次,点赞34次,收藏156次。Linux超详细笔记,...
文章浏览阅读6.8k次,点赞109次,收藏114次。【Linux】 Open...