硬盘根空间利用率的原因

硬盘根空间利用率的原因

确定根空间利用率原因的最佳方法是什么。即使重新启动我的机器后,我的机器中也只显示 2.2G 可用。

有哪些可能性

# df -h
Filesystem             Size  Used Avail Use% Mounted on
/dev/mapper/rhel-root   50G   48G  2.2G  96% /
devtmpfs               6.8G     0  6.8G   0% /dev
tmpfs                  6.8G  420K  6.8G   1% /dev/shm
tmpfs                  6.8G   17M  6.8G   1% /run
tmpfs                  6.8G     0  6.8G   0% /sys/fs/cgroup
/dev/mapper/rhel-home  408G  210G  198G  52% /home
/dev/sda1              497M   96M  401M  20% /boot

我尝试了这个ncdu /并得到了这个

    9.1 GiB [          ] /usr
    1.2 GiB [          ] /var
  806.2 MiB [          ] /root
  193.2 MiB [          ] /opt
  167.5 MiB [          ] /run
   70.6 MiB [          ] /boot
   26.8 MiB [          ] /etc
  420.0 KiB [          ] /dev
  168.0 KiB [          ] /tmp
  164.0 KiB [          ]  open.txt
   64.0 KiB [          ]  .readahead
.   0.0   B [          ] /proc
    0.0   B [          ] /sys
@   0.0   B [          ]  lib64
@   0.0   B [          ]  sbin
@   0.0   B [          ]  lib
@   0.0   B [          ]  bin
e   0.0   B [          ] /srv
e   0.0   B [          ] /mnt
e   0.0   B [          ] /media
    0.0   B [          ]  .autorelabel

这表明总空间不超过约13G。我仍然得到 49G 的总已用空间。

答案1

“最好”是很主观的,但有很多选择。以下是一些:

  • 图形:baobab、KDirStat
  • 诅咒:ncdu(@Pablo-Hinojosa 推荐)
  • 非交互式命令行:见下文。

我经常处理服务器环境,因此我通常更喜欢简单的非交互式方法,这些方法可以在任何地方运行而无需安装任何东西。例如我通常的做法是:

du -max / | grep -P '^\d{4}' | sort -rn

这通常需要一段时间才能运行,因此我通常会将输出通过管道传输到文件中,然后稍后再返回。在某些系统上,我会定期从 cron 运行此命令,以便可以查看随时间的变化。

编辑:现在您已经添加了文件系统中的文件不等于总文件使用量的信息。听起来您正在使用一个大型匿名文件。即打开的文件已被删除。一种残酷的方法是重新启动,但您也可以通过查看 proc.txt 来识别该文件。我在手机上,但根据记忆,列出 /proc/[0-9]*/fd 中的文件并查找大文件。您可以使用它来识别具有大文件的进程,并查看它的内容。 lsof 也可能有用。

答案2

看一眼NCDU Debian 系列发行版位于存储库中。在 Red Hat 系列发行版上,它位于 EPEL 上。所以:

apt-get install ncdu 

或者

yum install epel-release
yum install  --enablerepo=epel ncdu 

否则,你可以随时从源代码构建它

然后,只需输入

ncdu /

相关内容