ext3_dx_add_entry: Directory index full!

Posted wujf-myblog

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了ext3_dx_add_entry: Directory index full!相关的知识,希望对你有一定的参考价值。

今天登陆网站,发现后台登录不进去了,根据以往经验,一般是空间已满导致session文件生成失败。最直接的结果影响就是:有些人可以登录,有些人不能登录。

解决问题:

登录服务器。

技术图片

我们看到,我们的网站目录还是有存储空间的,但是为什么写不进去呢?

技术图片

通过报错我们可以知道,确实是空间满了才写不进去文件。我们知道,

每个存储设备(例如硬盘)或存储设备的分区被格式化为文件系统后,应该有两部份,一部份是inode,另一部份是 Block,Block是用来存储数据用的。而inode呢,就是用来存储这些数据的信息,这些信息包括文件大小、属主、归属的用户组、读写权限等。 inode为每个文件进行信息索引,所以就有了inode的数值。
既然存储空间未满,那应该是索引信息满了。

我们再次查看下iNode信息

技术图片

 

 可以看到,文件索引已经达到恐怖的3千多万。难道会报错no space to left!

 再次打开虚拟机,看到下面一连串报错。

技术图片

 

既然找到问题了,那么就找到占满磁盘索引的目录,删掉。但是普通的rm -f  肯定是删不动。我们可以mv 掉。这里我采取的是mv ,然后新生成目录。

然后将mv掉的目录慢慢删掉:

find dir -type f -name ‘*‘ | xargs rm

或者

cd dir

ls |xargs rm -f

 拓展:如何查找那个目录下文件最多 

首先切到根目录 /
cd /
然后执行
for i in /*; do echo $i; find $i | wc -l; done

以上是关于ext3_dx_add_entry: Directory index full!的主要内容,如果未能解决你的问题,请参考以下文章

sqlldr 直接路径加载direct=true的副作用

`O_DIRECT | 有啥区别? O_SYNC` + write() 和 `O_DIRECT` + write() + fsync()

C# 使用 Direct2D 实现斜角效果

Direct2D 和 Direct3D 互操作性的方法

用活Firewalld防火墙之direct

Direct2D坐标错误