서버 운영이나 개발 과정에서 로그 파일을 분석하는 일은 매우 중요합니다. 특히 특정 오류 메시지나 이벤트를 찾기 위해 로그 파일에서 특정 문자열을 검색하는 경우가 많습니다. 이번 글에서는 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
'Develop' 카테고리의 다른 글
[Thymeleaf] Map 데이터 출력 및 활용하기 (1) | 2025.03.10 |
---|---|
JavaScript와 jQuery로 Input 태그에서 공백 입력 방지하기 (1) | 2025.02.25 |
[Javascript] html javascript 로 엑셀 다운로드 구현. 총정리 (1) | 2025.02.21 |
[JavaScript] ajax post 요청 form 내용 json 으로 전송 (0) | 2025.02.21 |
Spring Framework의 Scheduled 스케줄 동적으로 실행 방법 (4) | 2025.02.17 |