无法追踪 /root 下的大型文件/目录

无法追踪 /root 下的大型文件/目录

操作系统: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,并多次帮助我定位大文件和目录结构。

相关内容