가장 일반적인 오류 메시지를 찾기 위해 UNIX 로그 파일을 찾는 방법

가장 일반적인 오류 메시지를 찾기 위해 UNIX 로그 파일을 찾는 방법

파일 예제 아파치 로그 파일이 있는 경우

타임스탬프 없이 Unix 로그 파일에서 가장 일반적인 오류 메시지를 추출하는 방법

핵심은 가장 일반적인 오류 메시지가 목록 상단에 표시되어야 한다는 것입니다.

답변1

cat /tmp/file:

ERROR 1 1234
ERROR 2 1234
ERROR 3 1234
ERROR 4 1234
ERROR 4 1234
ERROR 3 1234
ERROR 2 1234
ERROR 5 1234
ERROR 1 1234
ERROR 4 1234
ERROR 1 1234
ERROR 1 1234
ERROR 1 1234
ERROR 3 1234
ERROR 2 1234
ERROR 1 1234
ERROR 4 1234
ERROR 1 1234
ERROR 4 1234
ERROR 1 1234
ERROR 2 1234

grep "ERROR" /tmp/file | sort | uniq -c | sort -r:

  8 ERROR 1 1234
  5 ERROR 4 1234
  4 ERROR 2 1234
  3 ERROR 3 1234
  1 ERROR 5 1234

첫 번째 열에는 발견된 각 문자열의 발생 횟수가 표시됩니다.

grep "ERROR" /tmp/file\ # select only ERROR string
| sort\ # order
| uniq -c\ #  count duplicate items
| sort -rn # reverse order and use numeric sort

처음 5개의 오류에 대해 추가할 수 있습니다.|head -n5

답변2

고유한 오류가 발생하려면 타임스탬프를 잘라야 한다고 생각합니다.

grep '오류 메시지' /logfiles |cut-d' ' -f6- |sort-nr

답변3

모든 system.log 오류를 특정 순서로 "정렬"하는 데 관심이 있을 수 있습니다.날짜+시간또한?

시도: (날짜 검색에만 해당)

grep -i "Jul 18" /var/log/*.log | sort | uniq -c | sort -n 

시도해 보십시오: (특정날짜+시간찾다)

grep -i "Jul 18 16:" /var/log/*.log | sort | uniq -c | sort -n 

참고: 특정 날짜의 경우 먼저 cat *.log를 수행한 다음 헤더에 표시되는 내용을 찾으세요. OS에 따라 다를 수 있습니다. 위의 예는 UNIX/MacOS용입니다. 특정 운영 체제의 "cat /var/log/system.log" 헤더에 있는 내용을 기반으로 "Jul 18 16:"을 "수동으로" 편집해야 합니다.

도움이 되었기를 바랍니다!

:)

관련 정보