在我的服务器上,根分区为 73GB,但磁盘显示已满,尽管该设备上仅使用了大约 6GB:
# df -h
Filesystem Size Used Avail Use% Mounted on
udev 997M 0 997M 0% /dev
tmpfs 202M 41M 162M 20% /run
/dev/mapper/p22server-root 73G 68G 655M 100% /
(我在服务器上使用 LVM:)/dev/mapper/p22server-root -> ../dm-0
如果我检查
ncdu -x /
我发现总使用量只有 5.9GB。
我的猜测是,必须有文件仍然打开,在文件树中不可见。
我该如何调试呢?我想,重新启动将恢复丢失的空间,但现在无法重新启动。
如果您的怀疑属实,您可能会更轻松地使用lsof。
在输出中查找“(已删除)”或类似内容。
有两种可能:
1. 某些进程仍然打开已删除的文件
您可以使用 . 查看所有打开的文件
lsof
。例如,这些是显示的类型lsof
以及它们在输出中出现的频率:这仅显示文件描述符列 (FD):
DEL
在 的输出中查找具有该值的文件lsof
以获取提示。2.文件隐藏在挂载点后面
但更有可能的是,这些文件只是由于挂载点而被“隐藏”,当大量文件存储在挂载文件夹中时没有使用该挂载点,现在它们对
ncdu
.将根目录挂载到另一个位置并分析: