web-dev-qa-db-ja.com

Syslogで3Ware警告を抑制します

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

serverfaultに関するこの投稿 から私が理解していることから、これらのメッセージは無視することができます。私のドライブは正常に動作します。私のraid-controllerは、OSが取得しようとしている特定のコマンドを処理できないようです。

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コマンドのいずれかを使用して、私が間違っていることを誰かが助けてくれますか?

前もって感謝します。

1
choise

「Winstonkernel:」文字列はmsgプロパティの一部ではありません。これは通常、「:」の後のスペースで始まります。

regex操作はPosixBRE(基本的な正規表現)を使用するため、_\d_は存在しません。代わりに_[0-9]_を試してください。また、_+_は存在しないため、_*_が必要になります。または、サポートされている場合は、拡張正規表現操作を使用できます。ereregex;その場合、_+_がありますが、リテラル括弧には\(\)が必要です。

また、_~_は非常に古い非推奨の構文であるため、非常に古いrsyslogがない限り、代わりにstopを使用する必要があります(ただし、_~_は引き続き機能します)。

1
meuh

E0コマンドはSTANDBYIMMEDIATEです。これは、一定期間非アクティブになった後、ドライブをスリープ状態にするために電源管理によって送信されていると思います。これをオフにすると、単にログをマスクするのではなく、エラーの原因を取り除く必要があります。

1
stark