操作系统:RHEL6.9
问题
我/dev/mapper/vg_rayruhsso-lv_root
安装的文件系统/
没有可用大小。
# df -h
Filesystem Size Used Avail Use% Mounted on
/dev/mapper/vg_rayruhsso-lv_root
148G 145G 0 100% /
tmpfs 20G 0 20G 0% /dev/shm
/dev/sda1 477M 41M 411M 9% /boot
/dev/mapper/vg_rayruhsso-lv_home
270G 54G 202G 22% /home
我想要解决的问题
弄清楚是什么占用了整个空间(我不想扩大它的大小,因为它上周从 52G 扩展到了 148G)。问题是,在追踪过程中,我发现/根占用大量空间(128G)。
# du -sh *
984K
9.3M bin
39M boot
4.0K CdbsMutex
4.0K cgroup
180K dev
41M etc
54G home
215M lib
28M lib64
16K lost+found
4.0K media
0 misc
4.0K mnt
0 net
70M opt
du: cannot access `proc/4754/task/4754/fd/4': No such file or directory
du: cannot access `proc/4754/task/4754/fdinfo/4': No such file or directory
du: cannot access `proc/4754/fd/4': No such file or directory
du: cannot access `proc/4754/fdinfo/4': No such file or directory
0 proc
128G root
17M sbin
0 selinux
4.0K srv
0 sys
5.5M tmp
12G u01
3.2G usr
2.0G var
我检查了它的子目录,发现其中最大的文件/目录虽然du -sh
显示为128G,但实际上只有330M。
#du -sh /root/*
4.0K /root/anaconda-ks.cfg
4.0K /root/Desktop
4.0K /root/Documents
4.0K /root/Downloads
64K /root/install.log
12K /root/install.log.syslog
4.0K /root/Music
4.0K /root/Pictures
4.0K /root/Public
4.0K /root/Templates
330M /root/veritas
4.0K /root/Videos
# cd /root/
# du -sh
128G
出了什么问题?如何调查哪个文件占用了所有这些空间?
我尝试找出打开的文件但没有返回任何输出:
lsof | grep deleted
任何想法?
编辑:
# du -h --max-depth=1 /root | sort -h
4.0K /root/Desktop
4.0K /root/Documents
4.0K /root/Downloads
4.0K /root/.gvfs
4.0K /root/Music
4.0K /root/.nautilus
4.0K /root/Pictures
4.0K /root/Public
4.0K /root/Templates
4.0K /root/Videos
8.0K /root/.abrt
8.0K /root/.ssh
12K /root/.dbus
16K /root/.gnote
16K /root/.gnupg
16K /root/.thumbnails
20K /root/.cache
28K /root/.gnome2
64K /root/.config
144K /root/.pulse
276K /root/.gconf
364K /root/.local
396K /root/.kde
330M /root/veritas
128G /root
答案1
经过一番来回的讨论和私下讨论之后……
用于du -h --max-depth=1 /root | sort -h
搜索占用空间的东西。
目前,由于 的全局扩展,您正在跳过点文件和点目录du -sh /root/*
。
现在,根据编辑的结果(包括点文件和点文件夹),似乎占用空间的文件直接位于 中/root
。
要了解哪些文件占用了最多的空间,请/root
使用以下命令。
ls -alhSr /root
答案2
是否有可能您已发出删除命令但该命令从未结束,因为您尝试删除的文件正在被某个应用程序使用?
尝试运行:
/usr/bin/lsof | grep deleted
上述命令将显示所有等待删除且正在被进程使用的文件。
如果存在这样的文件,请终止其进程并再次检查容量。
解释:
在 Linux 或 Unix 系统上,通过 rm 或文件管理器应用程序删除文件将取消文件与文件系统目录结构的链接;但是,如果文件仍处于打开状态(正在由正在运行的进程使用),则该进程仍可访问该文件,并将继续占用磁盘空间。因此,可能需要重新启动此类进程,然后才能清除文件系统上该文件的空间。
关于此主题的更多信息可以找到这里。
答案3
你也可以看看ncdu
。它很像 treesize,并多次帮助我定位大文件和目录结构。