/var 分区已满 解决方法是什么?

Rah*_*til 12 disk-usage

如果/var生产服务器上的分区已满,那么解决方案是什么?

以下是我的解决方法:

  • 如果是LVM Partition,我们可以在线扩展。
  • 我们可以压缩日志。
  • 我们可以删除旧数据。

请建议我更多可能的方法来解决和克服这个问题。

如果你能分享你曾经遇到过的这个问题的经验,那对我会很有帮助。

Nil*_*ils 9

在任何这些情况下(有些东西正在填满),我的方法都是首先找到罪魁祸首。

我从使用开始du -sh *|grep G,继续使用du -sh *|grep M。当我找到它时,我开始研究为什么有些东西开始填满。

  • 我需要那么高的日志级别吗?
  • 如果日志 - 使用 logrotate (/etc/logrotate.d/) 即使是自制或自定义程序
  • 如果这是一个真正的磁盘猪,我会尝试将它分成自己的 LV

因此,我们服务器的标准 Linux 磁盘布局目前看起来像这样:

  • /var LV 2 GB
  • /var/log LV 8 GB
  • /var/tmp LV 4 GB

目前,这对于我们拥有的几乎所有用例都足够了。


Jos*_* R. 7

我曾经在非 LVM 分区上遇到过类似的问题,我通过将其中一个目录移动到更宽敞的分区并将其符号链接回原位来解决该问题。例如,在您的情况下,您可以尝试:

mv /var/cache /more/spacious/partition/cache
ln -s /more/spacious/partition/cache /var/cache
Run Code Online (Sandbox Code Playgroud)

请注意,我使用非系统目录执行此操作,并且到目前为止没有观察到不良副作用。但是,系统目录的情况可能有所不同。我们需要更有知识的人来确认/反驳。

编辑

  • 为了更安全,你可以这样做

    cp -a /var/cache /new/place/cache
    rm -rf /var/cache
    ln -s /new/place/cache /var/cache
    
    Run Code Online (Sandbox Code Playgroud)

    这可确保您不会丢失缓存,以防mv调用以某种方式出现故障(系统崩溃、断电……)

  • 为确保在复制目录时不会将任何内容写入目录,最好通过 LiveCD 执行此操作。