在 CentOS 上查找已用空间

在 CentOS 上查找已用空间

我有几个服务器的容量即将用尽,但我似乎找不到空间被消耗在哪里?当我运行:

[root@server /]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/mapper/VolGroup-lv_root
                       40G   38G   76M 100% /
tmpfs                 929M     0  929M   0% /dev/shm
/dev/sda1             485M   32M  428M   7% /boot

我可以看到 / 挂载已经满了,因此我运行:

[root@server /]# sudo ls | xargs du -hs
5.8M    bin
22M     boot
192K    dev
25M     etc
36K     home
122M    lib
19M     lib64
16K     lost+found
4.0K    media
4.0K    mnt
4.0K    opt
0       proc
124K    root
14M     sbin
0       selinux
4.0K    srv
0       sys
54M     tmp
749M    usr
61M     var

并且看不到任何占用大量空间的实际目录。最大的目录是 /usr,大小为 749M。

有人能建议我如何找出所有这些空间都被占用了吗?谢谢。

答案1

通常,发生这种情况是因为某些进程在已删除(未链接)文件上保持文件句柄打开。如果是这种情况,您可以使用 找到它们lsof,例如:

$ sudo lsof +L1
COMMAND PID USER   FD   TYPE DEVICE SIZE/OFF NLINK    NODE NAME
tuned   869 root    7u   REG  202,1     4096     0 4194380 /tmp/ffiGemRJt (deleted)
$

如果您发现已删除的文件占用了大量空间,则可能需要重新启动保持文件句柄打开的有问题的进程。

相关内容