我们在 /data 上安装了一组闪存驱动器 (8TB),如下所示:
/dev/mapper/vg.data-lv.data on /data type ext4 (rw,relatime)
/data 中有几个目录,其中一个是tmp
:
ls -lst /data/
total 1036468
...
1036360 drw-r--r-- 1 secadmin sudo 1061183488 Nov 8 13:10 tmp
...
由于某种原因,此文件夹 /data/tmp 似乎出现故障:任何修改、删除、列出其内容等的尝试都会导致相应的命令永远空闲/阻塞,不返回任何结果:
# ls /data/tmp
^C
#
# rm -rf /data/tmp
^C
#
我已经跑去fsck.ext4 -fvy
检查底层文件系统,但一切似乎都很好。
我怎样才能重新获得对该目录的控制权以及我失去对该目录的控制权的根本问题是什么?
答案1
正如 @meuh 所写,这看起来像一个非常大的目录,其中可能有数千或数百万个文件和/或子目录。 GNUls
和rm
工具对于处理如此大的目录不是很有用,因为它们尝试对完整输出进行排序或以其他方式处理。
您可以尝试使用“ find /data/tmp -print
”来生成文件名列表,或使用“ find /data/tmp -ls
”来获取长列表。这应该立即开始打印文件,除非目录有大量空块。在这种情况下,您也可以尝试“ e2fsck -fD <dev>
”来缩小目录,但这可能也需要很长时间。
确定是什么创建了如此多的文件也很有用,/data/tmp
以便这些文件在不再需要时被清理,和/或放入适当的目录层次结构而不是单个大目录中。