我试图在我的syslog中抑制以下警告:
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据我从这篇关于服务器故障的文章了解到的情况,这些消息可以轻松地被忽略。我的驱动器工作正常,只是我的raid控制器似乎无法处理操作系统试图获得的特定命令。
我正在运行Unraid (Slackware),所以我的syslog是由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命令?
提前谢谢。
发布于 2019-10-15 14:58:10
“温斯顿内核:”字符串不是msg属性的一部分,该属性通常以":“之后的空格开头。
regex操作使用Posix (基本正则表达式),因此\d不存在;相反,尝试[0-9]。而且,+不存在,您将需要*。或者,如果支持的话,您可以使用extended操作:ereregex;然后您将拥有+,但是对于文字括号,您需要\(\)。
而且,~是非常古老的废弃语法,所以除非您有一个非常老的rsyslog,否则您应该使用stop (尽管~仍然可以工作)。
发布于 2019-10-15 15:50:35
e0命令是立即待命的。我认为这是由电源管理部门发出的,是为了在一段时间的不活动之后,让驱动器进入睡眠状态。关闭它应该消除错误的原因,而不是仅仅掩盖日志记录。
https://serverfault.com/questions/988032
复制相似问题