Ubuntu:大型syslog和kern.log文件

时间:2016-02-25 21:00:04

标签: ubuntu ubuntu-14.04 syslog

登录我的Ubuntu机器,我收到一条警告,说我的磁盘空间不足。追溯,我发现它是系统日志,特别是吃掉我的1TB磁盘的kern.log。

-rw-r----- 1 syslog adm 240G Feb 25 14:22 kern.log
-rw-r----- 1 syslog adm 516G Feb 21 07:59 kern.log.1
-rw-r----- 1 syslog adm 1.1K Feb 15 07:39 kern.log.2.gz
-rw-r----- 1 syslog adm  19K Feb  7 07:56 kern.log.3.gz
-rw-r----- 1 syslog adm  37K Feb  1 07:45 kern.log.4.gz
-rw-r----- 1 syslog adm  23G Feb 25 14:52 syslog
-rw-r----- 1 syslog adm  25G Feb 25 08:11 syslog.1
-rw-r----- 1 syslog adm 1.6G Feb 24 07:49 syslog.2.gz
-rw-r----- 1 syslog adm 1.7G Feb 23 08:18 syslog.3.gz
-rw-r----- 1 syslog adm 3.4G Feb 22 08:19 syslog.4.gz
-rw-r----- 1 syslog adm 3.6G Feb 21 07:59 syslog.5.gz
-rw-r----- 1 syslog adm 6.9G Feb 20 07:38 syslog.6.gz
-rw-r----- 1 syslog adm 7.3G Feb 19 07:36 syslog.7.gz

从上面的代码片段中,您可以很容易地发现kern.log和kern.log.1占用了我的1TB磁盘的80%。我可以通过删除文件来获得空间,但我认为它不会解决问题。

有没有人知道问题可能是什么? 我看到你可以通过以下方式获得日志记录级别:

cat /proc/sys/kernel/printk

我得到了

4    4    1    7

3 个答案:

答案 0 :(得分:22)

这是一个古老的问题,但是前两个答案都不是好的解决方案:

  • 可接受的答案并不能解释为什么如果您解决了基础系统问题(答案为logrotate),磁盘问题就消失了,那么您的系统可能会继续写入日志并在您使用磁盘之前填满磁盘甚至可以找出潜在的问题。
  • 另一个答案是完全删除并禁用日志,这不是一个好方法,因为它忽略了潜在的问题。另外,在解决其他系统问题时,您可能稍后需要这些日志文件-禁用syslog会使跟踪将来的问题变得更加困难!

相反,这是一种更安全的方法,可让您在回收磁盘空间的同时保留日志文件,同时也阻止日志文件再次执行此操作。

  1. 安全清除日志:查看(或备份)日志以识别系统问题后,请键入> /var/log/syslog(包括>)以清除日志。为此,您可能需要是root用户,在这种情况下,请输入sudo su,密码和上面的命令。

  2. 然后,您可以使用logrotate强制日志旋转并删除达到一定大小的日志。在这种情况下,您可以使用sudo nano /etc/logrotate.d/rsyslog编辑配置并添加一行:

/var/log/syslog
{
    rotate 7
    daily
    maxsize 1G # add this line
    missingok
    notifempty
    delaycompress
    compress
    postrotate
        /usr/lib/rsyslog/rsyslog-rotate
    endscript
}
  • 这将迫使您的syslog在1天之后或当文件变为1GB时(以先到者为准)“轮换”(即,创建新的日志文件并存档先前的日志文件)。请注意,rotate 7意味着您的系统将仅保留7个syslog备份,因此它只能占用7GB的空间
  • 注意:您可以更改maxsizerotate N和其他设置来自定义日志-使用命令man logrotate查看更多信息。
  1. 在进行此操作时,您可能需要在文件的第二部分添加相同的设置,以控制其他日志文件的行为(例如,kern.log用于内核事件,auth.log用于身份验证事件等)。使用此设置可以使这些其他日志文件总共仅占用4GB。
...
{
    rotate 4
    weekly
    maxsize 1G
...
}

这将使您的系统保留事件记录,而不会填满磁盘。

有关更多信息,请参见manualsimilar question

答案 1 :(得分:1)

您检查过这些文件的内容吗?显然,您的服务器会发生一些事情,导致生成事件。解决导致该问题的任何问题,并且您的日志应恢复到正常大小。

答案 2 :(得分:0)

我通过在Ubuntu 18.04中执行以下两个步骤解决了此问题:

  1. 从/ var / log中删除所有大文件。

    sudo rm -rf kern*.log
    sudo rm -rf syslog*.log
    

    类似地,删除大尺寸的日志。

  2. 关闭服务:

    sudo systemctl stop rsyslog
    sudo systemctl disable rsyslog