CentOS 磁盘已满 - 无法找到最大的文件/目录

CentOS 磁盘已满 - 无法找到最大的文件/目录

我遇到了一个非常奇怪的问题,我的 centos 服务器上的硬盘显示使用率为 99%。我执行了几个命令来列出最大的文件,但没有显示任何大于 9.9G 的文件,即 Web 目录。以下是一些输出:

[root@desync-arpa /]# df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/sda2       453G  421G  8.6G  99% /
tmpfs           3.8G     0  3.8G   0% /dev/shm
/dev/sda1        97M   53M   40M  58% /boot
/dev/sda4       2.0G   68M  1.9G   4% /tmp
/dev/sdb        459G  643M  435G   1% /mnt/disk2


[root@desync-arpa /]# du --max-depth=1 -h /
4.0K    /srv
1.1G    /home
339M    /etc
4.0K    /media
445M    /mnt
568M    /root
du: cannot access `/proc/26016/task/26016/fd/4': No such file or directory
du: cannot access `/proc/26016/task/26016/fdinfo/4': No such file or directory
du: cannot access `/proc/26016/fd/4': No such file or directory
du: cannot access `/proc/26016/fdinfo/4': No such file or directory
0       /proc
188K    /dev
7.7M    /bin
4.0K    /selinux
284K    /tmp
16K     /lost+found
0       /sys
15M     /sbin
5.6G    /var
52M     /boot
26M     /lib64
8.0K    /opt
259M    /lib
1.3G    /usr
9.6G    /
[root@desync-arpa /]#

所有文件夹加起来占用了 18G 空间。我真的很难找到所有这些大文件,任何帮助都将不胜感激。

答案1

我建议你尝试使用基于 ncurses 的命令行实用程序 NCDU。它将扫描你的磁盘并允许你使用 ncurses 界面浏览它。以下是示例:

--- /tmp ----------------------------------------------------------------------
  393.7MiB [##########]  web_www_2015-02-17.tar.gz                      
   57.8MiB [#         ] /builder
   23.3MiB [          ] /config-prod
   15.0MiB [          ]  web_db_2015-02-17.sql.gz

您只需移动光标并使用回车键即可深入目录。

要安装它,只需运行:

 # yum install ncdu

注意:您需要 EL5/6 上的 EPEL 存储库才能使用 ncdu。

稍后,要在特定的 FS 上运行它:

 # ncdu -x /path/to/mountpoint

-x 表示 - 仅扫描当前 FS。

编辑:如果您仍然找不到占用磁盘空间的文件,则可能是这些文件已被删除但仍处于打开状态。例如,日志文件就可能发生这种情况。要查找这些文件,请运行以下命令:

# lsof | grep deleted

要删除这些文件,您需要停止持有这些文件的进程。释放磁盘空间的另一种方法是查看 proc 文件系统,找到这些文件句柄,然后清空这些文件。文件名将是输出的最后一列,因此只需复制它并在 /proc 中找到指向它的符号链接,然后清空该文件:

# > /proc/<pid>/fd/<number>

相关内容