我有几个服务器的容量即将用尽,但我似乎找不到空间被消耗在哪里?当我运行:
[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)
$
如果您发现已删除的文件占用了大量空间,则可能需要重新启动保持文件句柄打开的有问题的进程。