巨大的日志文件占据了整个硬盘

巨大的日志文件占据了整个硬盘

我的硬盘一直快满了,我以为这只是正常使用,但现在我注意到,rsyslogd 正在占用 CPU,而且我认为驱动器正在被日志文件填满:

> la -S
total 28G
-rw-r-----  1 syslog            adm          10G 2012-08-13 13:45 kern.log
-rw-r-----  1 syslog            adm         6.9G 2012-08-13 07:57 syslog.1
-rw-r-----  1 syslog            adm         6.8G 2012-08-12 07:56 kern.log.1
-rw-r-----  1 syslog            adm         3.4G 2012-08-13 13:45 syslog
-rw-r-----  1 syslog            adm         583M 2012-08-05 07:52 kern.log.2.gz
-rw-r-----  1 syslog            adm         190M 2012-08-11 07:59 syslog.3.gz
-rw-r-----  1 syslog            adm          77M 2012-08-07 07:35 syslog.7.gz
-rw-r-----  1 syslog            adm          37M 2012-08-09 07:45 syslog.5.gz
-rw-r-----  1 syslog            adm          24M 2012-08-10 01:08 syslog.4.gz
-rw-r-----  1 syslog            adm         9.3M 2012-08-12 07:46 syslog.2.gz
-rw-r--r--  1 root              root        565k 2012-04-27 01:24 Xorg.1.log

这只是重复记录错误吗?

> tail kern.log
Aug 13 13:50:33 optiplex kernel: [ 6530.465782] attempt to access beyond end of device
Aug 13 13:50:33 optiplex kernel: [ 6530.465785] loop3: rw=0, want=12919461, limit=8388607
Aug 13 13:50:33 optiplex kernel: [ 6530.465788] attempt to access beyond end of device
Aug 13 13:50:33 optiplex kernel: [ 6530.465791] loop3: rw=0, want=12919462, limit=8388607
Aug 13 13:50:33 optiplex kernel: [ 6530.465794] attempt to access beyond end of device
Aug 13 13:50:33 optiplex kernel: [ 6530.465797] loop3: rw=0, want=12919463, limit=8388607
Aug 13 13:50:33 optiplex kernel: [ 6530.465800] attempt to access beyond end of device
Aug 13 13:50:33 optiplex kernel: [ 6530.465803] loop3: rw=0, want=12919464, limit=8388607
Aug 13 13:50:33 optiplex kernel: [ 6530.465807] attempt to access beyond end of device
Aug 13 13:50:33 optiplex kernel: [ 6530.465810] loop3: rw=0, want=12919465, limit=8388607

系统日志中充满了相同的垃圾

  1. 我怎样才能防止 Linux 因日志文件而窒息自己?
  2. 为什么会出现此错误?我猜这是在我将一些 dd 驱动器映像放入 fstab 时发生的?

答案1

loop3是一个设备节点,它告诉我当你“将一些 dd 驱动器映像放入 fstab 中”时,dd 映像有些奇怪。

  1. 我怎样才能防止 Linux 因日志文件而窒息自己?

不要做会导致错误的事情 ;-)。不,说真的,这是最好的方法,因为即使您阻止写入日志文件,导致错误的任何原因都会占用 100% 的 CPU。有些事情非常频繁尝试访问/dev/loop3超出块设备范围的数据,因此你安装时设置了错误的大小,或者安装后大小发生了变化,或者某物

  1. 为什么会出现此错误?我猜这是在我将一些 dd 驱动器映像放入 fstab 时发生的?

是的,这肯定与此有关。它试图读取回送设备指向的文件末尾以外的内容。也许图像或图像中的文件系统声明其自身比实际更大?

答案2

要回答第一个问题,我记得每个根文件夹都“安装”到自己的位置或设备。话虽如此,我记得我们有,例如,/dev/hda1对于根/文件夹,/dev/hda2对于/var/dev/hda3对于/home,以及/dev/hda4对于/swap。我想知道您是否有这样的设置,如果有,是否可以将的输出重定向/log到另一个设备,可能是可移动驱动器或网络共享

答案3

我怎样才能防止 Linux 因日志文件而窒息自己?

  • 您可以编辑 syslog.conf 并更改记录这些事件的方式。您可以暂时抑制它们或将这些特定事件写入非关键磁盘(例如大型 USB 驱动器)

  • 您可以更频繁、更积极地轮换日志文件。您的系统可能正在使用 logrotate。如果是这样,请编辑其配置。

  • 有一些工具可以定期将日志文件修剪到特定大小,而不是仅仅按照固定的时间表轮换它们。

  • 修复导致写入日志记录的任何问题。(即检查 fstab)

相关内容