抑制系统日志中的 3Ware 警告

抑制系统日志中的 3Ware 警告

我正在尝试抑制系统日志中的以下警告:

Oct 13 04:43:33 Winston kernel: 3w-sas: scsi1: ERROR: (0x03:0x0101): Invalid command opcode:opcode=0x85.
Oct 13 04:43:33 Winston kernel: md: do_drive_cmd: disk0: ATA_OP e0 ioctl error: -22
Oct 13 04:43:33 Winston kernel: mdcmd (839855): spindown 1
Oct 13 04:43:33 Winston kernel: 3w-sas: scsi1: ERROR: (0x03:0x0101): Invalid command opcode:opcode=0x85.
Oct 13 04:43:33 Winston kernel: md: do_drive_cmd: disk1: ATA_OP e0 ioctl error: -22
Oct 13 04:43:34 Winston kernel: mdcmd (839856): spindown 0
Oct 13 04:43:34 Winston kernel: 3w-sas: scsi1: ERROR: (0x03:0x0101): Invalid command opcode:opcode=0x85.
Oct 13 04:43:34 Winston kernel: md: do_drive_cmd: disk0: ATA_OP e0 ioctl error: -22
Oct 13 04:43:34 Winston kernel: mdcmd (839857): spindown 1

据我了解serverfault 上的这篇文章,这些消息可以安全忽略。我的驱动器工作正常,只是我的 raid 控制器似乎无法处理操作系统尝试获取的特定命令。

我正在运行 Unraid (Slackware),所以我的系统日志由 写入rsyslog.d。我编辑了以下文件以忽略特定消息,但没有成功:/etc/rsyslog.d/01-blocklist.conf

我尝试过的变化:

:msg,contains,"error: mdcmd, 2640: Invalid argument (22): write" ~
:msg,regex,"md: do_drive_cmd: disk\d ATA_OP e0 ioctl error: -22" ~
:msg,regex,"mdcmd (\d+): spindown \d" ~

:msg,contains,"3w-sas: scsi5: ERROR: (0x03:0x0101)" ~
:msg,contains,"Winston kernel: 3w-sas: scsi1: ERROR" ~
:msg,contains,"kernel: 3w-sas: scsi1: ERROR" ~

有人能帮助我找出我做错的地方吗,无论是使用命令contains还是那些regex

提前致谢。

答案1

“Winston kernel:”字符串不是msg属性的一部分,通常以“:”后的空格开头。

regex操作使用 Posix BRE(基本正则表达式),因此\d不存在;请尝试[0-9]。此外,+不存在,您将需要*。或者,如果支持,您可以使用扩展正则表达式操作:ereregex;然后您将有+,但您需要\(\)文字括号。

此外,~这是一种非常古老的弃用语法,所以除非您有一个非常古老的 rsyslog,否则您应该使用它stop(尽管~仍然可以工作)。

答案2

e0 命令是 STANDBY IMMEDIATE。我认为这是由电源管理发送的,目的是让驱动器在一段时间不活动后进入休眠状态。关闭它应该可以消除错误的原因,而不仅仅是掩盖日志记录。

相关内容