服务器日志占满了我的硬盘,我该如何解决这个问题?

服务器日志占满了我的硬盘,我该如何解决这个问题?

我有 Ubuntu 12.04,它在 apache httpd 上为我的 Web 应用程序(20 MB)提供服务。这是我的分区表:

$ sudo parted -l

Disk /dev/sda: 500GB
Partition Table: gpt

Number|Start|End|Size|File System|Name|Flag
1|17.4K|20.0MB|20.0MB|fat16| |boot
2|20.0MB|489GB|489GB|ext4
3|489GB|500GB|10.6GB|linux-swap(v1)

几天前我将其升级到 12.10。然后将一个文件夹(30 GB)复制到 www 文件夹。突然服务器挂了,我得到了一个低图形模式消息。我删除了那个大文件夹并重启了电脑,但仍然收到同样的消息,No Space Left on Device

$ sudo du -h /var --max-depth=1

4.0K  /var/tmp
235M  /var/www
444G  /var/log

因此,/var/log 非常大。

我试过:

$ sudo apt-get autoclean;sudo apt-get autoremove
**Error! No space left on device**

我确实删除了档案日志,但没有任何变化,最大的文件是/var/log/cups,当我列出它的文件时,我得到:

-rw-r----- 1 root adm 758 DEC 30 07:37 access_log.1.gz
..
**-rw-r----- 1 root adm 444G JAN 5 08:09 error_log**
-rw-r----- 1 root adm 245 DEC 29 13:17 error_log.1.gz

我试过:

$ sudo service cups stop
sudo: unable to write to /var/lib/sudo/username/tty2: No space left on device

当我拔掉电脑电源然后重新插上时,它工作正常,问题消失。尺寸/var完全正常。

我害怕再次面对它。我认为我的主要问题在于分区。/home/root在一起而不是分开。我必须为 创建一个新分区吗/home?有人有其他想法如何避免磁盘再次填满吗?

答案1

正如您自己注意到的,您的日志文件夹非常大。您可能想要删除一些旧日志。旧日志会定期归档。如果您通过以下方式查看日志文件夹:

cd /var/log
ls -lh

您将看到很多以 结尾的文件.gz。这些文件是存档日志。它们前面有一个数字,表示存档有多旧。.1.gz是最新的。如果您确定不再需要旧日志,请删除它们:

sudo rm *.gz

在这样做之前,您可能需要检查日志为何如此巨大。查看哪些日志文件和相应的存档很大。如果发现一些,请仔细查看。日志条目是什么?其中一些是否非常频繁?哪个进程/程序/事件导致了此问题?您可以安全地降低日志级别吗?

编辑

查看error_log。您应该使用tail显示最后几行,并希望它可以处理如此大的文件。您也可以删除该文件以释放空间,但我们应该找出它为什么这么大。

相关内容