1

相关软件:
Red Hat Enterprise Linux Server release 6.3 (Santiago)
cpanel 安装 11.34.0 (build 7)

背景和问题:
我收到磁盘使用警告(通过 cpanel),因为 /var 似乎在我的服务器上填满。假设是有一个日志文件变得太大并填满了分区。我最近删除了一个大型日志文件并更改了我的系统日志配置以更定期地轮换日志文件。我删除了 /var/log/somefile 之类的内容并编辑了 /etc/rsyslog.conf。这就是我怀疑 cpanel 发出的磁盘使用报告警告的原因,因为它看起来不正确。

这是 df 为分区报告的内容:

$ [/var]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2             9.9G  511M  8.9G   6% /
tmpfs                 5.9G     0  5.9G   0% /dev/shm
/dev/sda1              99M   53M   42M  56% /boot
/dev/sda8             883G  384G  455G  46% /home
/dev/sdb1             9.9G  151M  9.3G   2% /tmp
/dev/sda3             9.9G  7.8G  1.6G  84% /usr
/dev/sda5             9.9G  9.3G  108M  99% /var

这是 du 为 /var 挂载点报告的内容:

$ [/var]# du -sh
528M    .

显然发生了一些奇怪的事情。过去我有类似的报告不一致,我重新启动了服务器,之后df报告似乎是正确的。我决定重新启动服务器,看看是否会发生同样的事情。

这是 df 现在报告的内容:

$ [~]# df -h
Filesystem            Size  Used Avail Use% Mounted on
/dev/sda2             9.9G  511M  8.9G   6% /
tmpfs                 5.9G     0  5.9G   0% /dev/shm
/dev/sda1              99M   53M   42M  56% /boot
/dev/sda8             883G  384G  455G  46% /home
/dev/sdb1             9.9G  151M  9.3G   2% /tmp
/dev/sda3             9.9G  7.8G  1.6G  84% /usr
/dev/sda5             9.9G  697M  8.7G   8% /var

这看起来更像我期望得到的。

为了保持一致性,这是 du 为 /var 报告的内容:

$ [/var]# du -sh
638M    .

问题:
这是一个麻烦。我不确定 cpanel 发布的磁盘使用报告从哪里得到他们的信息,但它显然是不正确的。以后如何避免这种不准确的报告?似乎 df 报告错误的磁盘使用情况是源问题的一个强有力的指标,但我不确定。有没有办法以某种方式“刷新”文件系统,以便 df 报告准确而无需重新启动服务器?解决此问题的任何其他想法?

4

1 回答 1

2

如果您删除了一个文件,但它仍然被某个进程打开,则磁盘空间不会恢复——该进程会继续访问该文件。这是日志文件的常见问题,因为 syslogd 使它们全部打开。

报告的磁盘空间du不包括此文件,因为它通过遍历目录层次结构将找到的所有文件的大小相加来工作。但是这个文件在任何目录下都找不到,所以不算。df报告文件系统中使用的实际空间。

日志文件轮换脚本向 syslogd 发送一个信号,告诉它关闭并重新打开其所有日志文件。您可以通过以下方式完成此操作:

killall -HUP syslogd

您还需要这样做syslogd才能使用修改后的syslog.conf.

于 2012-11-01T20:58:41.733 回答