我有两个分区,一个用于 /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 并开始您的一天。
希望这能帮您解决所有问题。