![특정 문자열을 기준으로 오류 로그 검색 및 정렬](https://linux55.com/image/65034/%ED%8A%B9%EC%A0%95%20%EB%AC%B8%EC%9E%90%EC%97%B4%EC%9D%84%20%EA%B8%B0%EC%A4%80%EC%9C%BC%EB%A1%9C%20%EC%98%A4%EB%A5%98%20%EB%A1%9C%EA%B7%B8%20%EA%B2%80%EC%83%89%20%EB%B0%8F%20%EC%A0%95%EB%A0%AC.png)
모든 오류.zip 및 오류.log 파일을 검색하고 "오류" 문자열로 필터링하고 날짜별로 정렬하는 방법은 무엇입니까?
총 오류 수는 어떻습니까?
요구 사항: Linux 서버에 comp1, comp2, comp3 등 3개의 구성 요소가 설치되어 있습니다. 각 구성 요소에는 자체 로그 디렉터리가 있습니다. 각 로그 디렉터리에는 Exception.log 연결.log comp1.log 및 일부 *.zip 파일이 포함되어 있습니다. 나는 그것들을 검색하고 날짜를 기준으로 정렬하고 총 오류 수를 표시해야 합니다.
오류 기록
2015-05-15 05:59:03,316 | 73002 | JomaManagerThread 실행 중 오류 |
더 많은 정보를 알려주세요
답변1
-p
zip 파일의 내용을 출력하는 데 사용할 수 있는 파일 이름이 필요하지 않은 것 같으므로 다음을 수행하십시오 .
(for i in ./*.zip; do unzip -p "$i"; done; cat ./*.log) |
grep -F ERROR | sort
또는 error.zip 파일이 어디에나 있는 경우:
(find . -type f -name "*.zip" -exec unzip -p {} \;
find . -type f -name "err*.log" -exec cat {} + ) |
grep -F ERROR | sort
이렇게 하면 zip 파일 이름과 압축을 푼 추출된 콘텐츠 파일 이름은 물론 로그 파일 이름도 제거됩니다. 이 정보가 필요하다면 발견된 각 줄의 어딘가에 파일 이름을 삽입하는 작업을 위한 Python 프로그램을 작성하겠습니다(물론 날짜 이전은 아님). 표준 zipfile
모듈을 사용하면 먼저 파일을 추출하지 않고 zip 파일의 내용을 처리할 수 있으며, 프로그램을 stdout에 작성하여sort