我有一个 centos 网络服务器,具有以下分区:
Filesystem Type 1K-blocks Used Available Use% Mounted on
/dev/md1 ext3 4956160 4697064 3272 100% /
/dev/md3 ext3 4956224 1192056 3508340 26% /var
/dev/md2 ext3 224524852 11572104 201363464 6% /home
/dev/md0 ext3 77649 23622 50018 33% /boot
我不明白为什么 md1 会泄漏空间。仅在 20 分钟前,它显示的内容如下。有人可以推荐一种方法来检查哪个文件正在变大/占用空间吗?
Filesystem Type 1K-blocks Used Available Use% Mounted on
/dev/md1 ext3 4956160 4696852 3484 100% /
更新/编辑:
这些看起来有什么不寻常的吗?
12K /aquota.user
7.8M /bin
18M /boot
204K /dev
104M /etc
12G /home
312M /lib
20M /lib64
16K /lost+found
8.0K /media
0 /misc
8.0K /mnt
0 /net
99M /opt
0 /proc
110M /root
32M /sbin
8.0K /selinux
208M /sources
8.0K /srv
0 /sys
84K /tmp
2.7G /usr
1.1G /var
答案1
没有 /tmp?您没有显示完整列表吗?
答案2
您可以使用“du”命令查看各个目录占用了多少空间。如果您从顶层开始并运行如下命令:
du -ks * | sort -n
这将按从小到大的顺序对目录和文件进行排序(以千字节为单位显示大小)。如果看起来大部分空间都在一个目录中,请 cd 到该目录并重新运行上述命令。反复操作,直到找到文件所在的位置。
这总是有失败的可能性,因为空间被一个打开但已被删除的文件占用。您可以使用该lsof
命令查看哪些进程在文件系统上打开了文件。
答案3
我建议从以下方面开始:
du-shx/*
这将显示根分区中目录的大小。选择一个看起来较大的目录(例如 /usr)并执行以下操作:
du-shx /usr/*
继续检查,直到找到占用空间的部分。务必使用 -x 标志,这样您就只能查看根分区。
答案4
du 输出中显示/tmp
,但 df 输出中未显示。如果 /tmp 在 / 上,则肯定会波动 - 并且很容易波动到您看到的数量。
如果可以,请/tmp
进入其自己的分区,即使您必须使用 tmpfs 并将其有效地放入 core/swap。其他可以从您的(微小的!)根分区中快速驱逐的候选文件是/opt
,占用空间的大部分文件/root
(虽然不是/root
它本身),以及/sources
。将它们移到 /home 并通过软链接它们。
让我澄清一下,在我看来,根本问题是 5G 根分区。这没有任何借口,在一台有 200GB 硬盘的机器上更是如此。