Develop

로그 파일에서 특정 문자열 찾기 cat, more 및 기타 명령어 활용법

issuemaker99 2025. 2. 24. 15:42
728x90

서버 운영이나 개발 과정에서 로그 파일을 분석하는 일은 매우 중요합니다. 특히 특정 오류 메시지나 이벤트를 찾기 위해 로그 파일에서 특정 문자열을 검색하는 경우가 많습니다. 이번 글에서는 cat more 명령어를 이용해 로그 파일에서 특정 문자열을 찾는 방법과 추가적으로 활용할 수 있는 다른 명령어들을 소개하겠습니다.


1. cat 명령어로 특정 문자열 검색하기

cat 명령어는 파일의 내용을 출력하는데 사용됩니다. 하지만 단순히 파일 내용을 보는 것만으로는 원하는 문자열을 찾기 어렵기 때문에 grep과 함께 사용하는 것이 일반적입니다.

예제:

cat access.log | grep "error"

 

위 명령어는 access.log 파일에서 "error"라는 단어가 포함된 줄을 출력합니다.

옵션 설명:

  • cat access.log: 로그 파일 내용을 출력
  • | grep "error": 출력된 내용 중 "error"가 포함된 줄을 필터링하여 출력

만약 대소문자를 구분하지 않고 검색하고 싶다면 -i 옵션을 사용하면 됩니다.

cat access.log | grep -i "error"

 

또한 특정 단어나 문구가 몇 번 등장하는지 확인하려면 -c 옵션을 추가할 수 있습니다.

cat access.log | grep -c "error"

 

위 명령어는 "error"라는 문자열이 포함된 줄의 개수를 출력합니다.


2. more 명령어로 로그 파일에서 문자열 찾기

more 명령어는 긴 파일을 한 페이지씩 볼 수 있도록 해줍니다. 이를 활용하면 대용량 로그 파일을 효율적으로 탐색할 수 있습니다.

예제:

more access.log

 

파일을 연 후 특정 문자열을 찾으려면 / 키를 입력한 뒤 검색어를 입력하고 Enter를 누르면 됩니다.

예를 들어, "error"라는 단어를 검색하려면:

/error

 

를 입력한 후 Enter를 누릅니다. 해당 단어가 있는 부분으로 이동하며, 다음 검색 결과로 이동하려면 n 키를 누르면 됩니다.


3. 기타 유용한 명령어들

(1) less 명령어: more의 업그레이드 버전

less access.log

 

  • /error 입력 후 Enter: "error" 검색
  • n: 다음 검색 결과로 이동
  • N: 이전 검색 결과로 이동
  • 방향키(↑, ↓)로 자유롭게 이동 가능

(2) tail 명령어: 실시간 로그 확인

tail -f access.log

 

  • 새로운 로그가 추가되면 자동으로 화면에 출력됨
  • 특정 문자열이 포함된 로그만 보고 싶다면:
tail -f access.log | grep "error"

 

(3) awk 명령어: 특정 컬럼만 출력하기

awk '/error/ {print $1, $2, $3}' access.log

 

위 명령어는 "error"가 포함된 줄에서 첫 번째, 두 번째, 세 번째 컬럼만 출력합니다.

(4) sed 명령어: 특정 문자열 강조

sed -n '/error/s/error/\e[31m&\e[0m/p' access.log

이 명령어는 "error"라는 단어를 빨간색으로 강조하여 출력합니다.


결론

로그 파일에서 특정 문자열을 찾는 것은 서버 관리와 디버깅에서 매우 중요한 작업입니다.

  • 빠르게 검색할 때는 grep
  • 한 줄씩 탐색할 때는 more 또는 less
  • 실시간으로 확인할 때는 tail -f
  • 특정 패턴을 가공할 때는 awk sed
LIST