CentOS 网络服务器硬盘配额超出

CentOS 网络服务器硬盘配额超出

我有一个 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 硬盘的机器上更是如此。

相关内容