子分区的磁盘空间填满父分区

子分区的磁盘空间填满父分区

我有两个分区,一个用于 /var/log,另一个用于 /var/log/audit

但是第一个显示已满(并引发所有警报),因为第二个在里面。/var/log/audit 占用了 /var/log 的磁盘空间,即使它们是分开的分区。这是 df -h 的输出

/dev/mapper/vg_system-lv_varlog
                  9.8G  9.7G     0 100% /var/log
/dev/mapper/vg_system-lv_audit
                   26G  7.1G   18G  30% /var/log/audit

我确实检查过了,没有 /var/log/audit 的话,/var/log 占用的空间只有 985M

[root@server log]# du -sh --exclude=audit
985M    .

并且没有隐藏/删除的文件(我用 lsof 检查过)

所以我得到一个分区,它只使用了 1Gb,但由于里面有另一个分区,所以显示为已满。它们不应该独立于 df 和磁盘空间吗?我遗漏了什么吗?

问候

答案1

一个分区肯定不会影响另一个分区——这一点是肯定的。你可能正在查看挂载点影子,这是数据的影响已挂载到非空目录的子树。这就是我们说在空目录中挂载文件系统的原因 - 但这并不是必需的。

有一个简单的方法可以解决这个问题。您可以将目录 /var/log/ 绑定挂载到 /tmp/var/log(或其他任意空目录)。以下是此示例:mount -o bind /var/log /tmp/var/log

完成此操作后,您可以查看 /var/log 文件系统的内容 - 在 /tmp/var/log 中查看时只能查看 /var/log。因此,如果您在 /tmp/var/log/audit 中看到某些内容 - 那么它不应该在那里。这将使您能够使用常规工具处理它(而无需卸载所有文件系统)。完成后,卸载 /tmp/var/log 并开始您的一天。

希望这能帮您解决所有问题。

相关内容