체인의정석

운영서버 터미널에서 에러 로그 특정 단어 앞,뒤로 여러 단어 검색하는 법 (zCat, grep -A -B, grep) 본문

개발/docker & linux

운영서버 터미널에서 에러 로그 특정 단어 앞,뒤로 여러 단어 검색하는 법 (zCat, grep -A -B, grep)

체인의정석 2023. 8. 11. 14:16
728x90
반응형

실제 운영 서버 또는 공용 dev 서버 등에서는 매우 많은 양의 로그가 발생한다.

이러한 경우 일자별로 로그 파일이 압축되어 있기도 한다.

만약 에러가 발생했는데 로그를 보면서 원인을 파악해야 하는 상황이라면 압축파일을 복사해서 풀고 확인하려면 너무나도 번거롭고 복잡하며 부담감 까지 든다.

하지만 라인 하나로 압축을 안풀고 검색할 수 있는 방법이 있다.

사실 로그 파일을 검색하는 방법에 대해서는 이전에도 기록을 해두었는데 이번에 더 자세한 검색을 하면서 사용한 코드들을 기록해 보려고 한다.

먼저 터미널에서 특정 단어 검색하는 방법은 아래 링크에 정리되어 있다.

https://it-timehacker.tistory.com/433

 

터미널에서 파일의앞,뒤,특정 부분만 뽑아서 출력하기(head, tail, grep)

실제 프로덕트에서 에러 로그를 보고 디버깅을 할 때는 양이 많아서 cat으로는 찾기 어렵다. 따라서 원하는 상황에 맞게 로그를 터미널에서 검색해서 볼 수 있어야 한다. 1. head head는 앞 부분을

it-timehacker.tistory.com

또한 압축 파일을 풀지 않고 조회하는 방법은 다음과 같다.

https://it-timehacker.tistory.com/398

 

리눅스 압축 파일 풀지 않고 확인하기

복잡한 에러로그 디렉토리에서 압축 파일을 푸는 방법은 다른 디렉터리에서 복사해서 보는 방법이 있는데 먼저 다른곳에 복사하고 나서 푸는 것이다. cp 파일명.txt /경로/새로움파일명.txt 이런

it-timehacker.tistory.com

그렇다면 과거 특정 일자의 압축파일을 풀지 않고 바로 한번에 단어 검색까지 하기 위해서는 어떻게 해야 할까?

다음과 같이 하면 된다.

zcat 압축파일이름.gz | grep "찾고싶은단어"

근데 이렇게 하면 한줄 씩만 출력되어서 매우 불편하다.

이러한 경우 앞 뒤에 특정 라인만큼 더 출력시켜주는 구문이 존재한다.

zcat 압축파일이름.gz | grep -A 5 -B 5 "찾고자하는단어"

이렇게 -A, -B 의 숫자를 바꾸면 해당 숫자만큼 앞 뒤로 더 출력을 시켜줘서 정확한 에러를 체크할 수 있다.

참고로 현재는 예외처리 시에 작성하는 에러로그에 해당 파일이름을 로거에 공통적으로 넣고 함수 이름을 남기고 에러메세지를 남기는 규격대로 통일해서 함수 이름만 검색하면 특정 함수에서 에러가 났는지를 체크해 볼 수 있다.

 

728x90
반응형
Comments