确定根空间利用率原因的最佳方法是什么。即使重新启动我的机器后,我的机器中也只显示 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 也可能有用。