시스템 로그에서 중복된 줄을 필터링할 수 있나요?

시스템 로그에서 중복된 줄을 필터링할 수 있나요?

엄마의 컴퓨터에는 Lexmark 드라이버의 줄로 채워진 syslog/kern.log가 표시됩니다.

Sep 22 21:01:20 pamela-desktop kernel: [48657.676578] usb 1-3: usbfs: process 1490 (demond_nscan) did not claim interface 3 before use
Sep 22 21:01:20 pamela-desktop kernel: [48657.676585] usb 1-3: usbfs: process 1490 (demond_nscan) did not claim interface 3 before use
Sep 22 21:01:20 pamela-desktop kernel: [48657.676592] usb 1-3: usbfs: process 1490 (demond_nscan) did not claim interface 3 before use

이제 이 값에 필요한 숫자를 곱하면 161GB가 됩니다.

sys/kern.log에서 중복된 줄을 필터링하는 스크립트를 작성하고 이를 cron 작업으로 실행하는 것 외에 제가 할 수 있는 다른 작업이 있나요?

답변1

syslog는 중복된 줄을 자동으로 제거하지만 여기서는 커널이 syslog로 보내기 전에 타임스탬프(시작 이후 마이크로초 단위)를 삽입하기 때문에 중복되지 않습니다.

syslog 타임스탬프도 로그에 스탬프를 찍기 때문에 이 타임스탬프는 중복된 것처럼 보일 수 있지만 그것과 그 세분성은 커널 문제를 디버깅할 때 유용합니다(syslog 타임스탬프는 덜 정확하고 실제 이벤트와 이를 표시하는 syslog 사이에 차이가 있을 수 있기 때문입니다). 지연이 발생하며 syslog에 있거나 사라지므로 출력에서 ​​타임스탬프를 /var확인하는 것이 좋습니다 .dmesg

다음을 수행하여 이러한 kmsg 타임스탬프를 비활성화할 수 있습니다.

echo N | sudo tee /sys/module/printk/parameters/time

printk.time=N또는 Linux 커널 명령줄에 전달하도록 부트로더를 구성하여 영구적으로 만듭니다.

답변2

부자이고 자랑스럽다논평꽤 정확합니다 :

  1. 먼저 드라이버 문제를 해결해야 합니다.
  2. 그렇지 않은 경우 로그 파일이 너무 큰 것이 문제이므로 수정하십시오 logrotate.
  3. 계속해서 이 행을 필터링하려면 다음 단계를 따르세요.

당신의 말에 따르면다른 문제, 내 생각에는 Ubuntu 머신인 것 같은데, 그렇다면 아마도 실행 중일 것입니다.시스템 로그(또는 설치할 수도 있습니다). 그것을 시도 ps aux | grep syslog하고 참조하십시오.

rsyslog를 사용하면 행을 필터링할 수 있습니다속성 기반 필터. 예를 들어 필터는 리터럴 문자열 일치 또는 정규 표현식일 수 있습니다. 문서의 예:

:msg, contains, "error" ~

'~'는 메시지를 삭제해야 함을 나타냅니다. 따라서 이들 중 하나를 쉽게 작성하여 결함이 있는 드라이버의 메시지를 완전히 억제할 수 있습니다. 이는 기술적으로 중복 항목을 제거하지 않는다는 점에 유의하세요.어느이 오류가 기록되는 줄입니다.

관련 정보