我的硬盘一直快满了,我以为这只是正常使用,但现在我注意到,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
系统日志中充满了相同的垃圾
- 我怎样才能防止 Linux 因日志文件而窒息自己?
- 为什么会出现此错误?我猜这是在我将一些 dd 驱动器映像放入 fstab 时发生的?
答案1
loop3
是一个设备节点,它告诉我当你“将一些 dd 驱动器映像放入 fstab 中”时,dd 映像有些奇怪。
- 我怎样才能防止 Linux 因日志文件而窒息自己?
不要做会导致错误的事情 ;-)。不,说真的,这是最好的方法,因为即使您阻止写入日志文件,导致错误的任何原因都会占用 100% 的 CPU。有些事情非常频繁尝试访问/dev/loop3
超出块设备范围的数据,因此你安装时设置了错误的大小,或者安装后大小发生了变化,或者某物。
- 为什么会出现此错误?我猜这是在我将一些 dd 驱动器映像放入 fstab 时发生的?
是的,这肯定与此有关。它试图读取回送设备指向的文件末尾以外的内容。也许图像或图像中的文件系统声明其自身比实际更大?
答案2
要回答第一个问题,我记得每个根文件夹都“安装”到自己的位置或设备。话虽如此,我记得我们有,例如,/dev/hda1
对于根/
文件夹,/dev/hda2
对于/var
,/dev/hda3
对于/home
,以及/dev/hda4
对于/swap
。我想知道您是否有这样的设置,如果有,是否可以将的输出重定向/log
到另一个设备,可能是可移动驱动器或网络共享
答案3
我怎样才能防止 Linux 因日志文件而窒息自己?
您可以编辑 syslog.conf 并更改记录这些事件的方式。您可以暂时抑制它们或将这些特定事件写入非关键磁盘(例如大型 USB 驱动器)
您可以更频繁、更积极地轮换日志文件。您的系统可能正在使用 logrotate。如果是这样,请编辑其配置。
有一些工具可以定期将日志文件修剪到特定大小,而不是仅仅按照固定的时间表轮换它们。
修复导致写入日志记录的任何问题。(即检查 fstab)