/ var分区满了怎么办?


8

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

以下是我的解决方法:

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

请向我建议更多解决和解决此问题的方法。

如果您可以分享您遇到的这个问题的经验,对我会有所帮助。


2
删除一些东西。
尼尔斯

Answers:


6

在上述任何一种情况下(有些事情正在填补),我的方法都是首先找到罪魁祸首。

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

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

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

  • / var LV 2 GB
  • / var / log 8 GB的LV
  • / var / tmp LV(4 GB)

目前,对于我们几乎所有的用例而言,这已经足够了。


兄弟,这个命令是救命稻草!谢谢!
Petro

5

对于非LVM分区,我曾经遇到过类似的问题,可以通过将目录之一移至更宽敞的分区并将其符号链接回原位来解决。例如,您可以尝试以下方法:

mv /var/cache /more/spacious/partition/cache
ln -s /more/spacious/partition/cache /var/cache

请注意,我是使用非系统目录执行此操作的,到目前为止,还没有发现不良的副作用。但是,对于系统目录,情况可能有所不同。我们需要一个更有知识的人来确认/驳斥。

编辑

  • 为了更安全,您可以

    cp -a /var/cache /new/place/cache
    rm -rf /var/cache
    ln -s /new/place/cache /var/cache
    

    这样可以确保您不会因mv调用中断(系统崩溃,断电等)而丢失缓存。

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


我从未尝试过,但是如果要按@Joseph的说明移动系统目录,最好使用Live CD进行。您应该小心,但它可能只会起作用;)
Alko 2013年

@Alko,您是正确的,但我们可以检查使用的lsof /var/cache是未使用的..如果未使用,我们可以移至另一个位置。
Rahul Patil

@RahulPatil和#Alko好点。添加答案。
Joseph R.
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.