Я пытаюсь подавить следующие предупреждения в моем системном журнале:
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, эти сообщения можно игнорировать. Мои диски работают нормально, просто кажется, что мой рейд-контроллер не может обрабатывать определенные команды, которые пытается получить ОС.
Я использую 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
те?
Заранее спасибо.
Команда e0 - НЕМЕДЛЕННЫЙ РЕЖИМ ОЖИДАНИЯ. Я думаю, что это отправлено управлением питанием, чтобы перевести диск в спящий режим после периода бездействия. Отключение этого параметра должно устранить причину ошибки, а не просто замаскировать ведение журнала.
Строка "Winston kernel:" не является частью msg
свойство, которое обычно начинается с пробела после ":".
В regex
операция использует Posix BRE (базовые регулярные выражения), поэтому \d
не существует; вместо этого попробуйте [0-9]
. Также, +
не существует, и вам понадобится *
. В качестве альтернативы, если поддерживается, вы можете использовать расширенную операцию регулярного выражения: ereregex
; тогда у вас будет +
, но тебе нужно \(\)
для буквальных скобок.
Также, ~
- очень старый устаревший синтаксис, поэтому, если у вас нет очень старого rsyslog, вы должны использовать stop
вместо этого (хотя ~
все равно должно работать).