운영 또는 개발 환경에서 로그 파일에서 원하는 키워드가 포함된 라인만 빠르게 확인해야 하는 경우가 매우 많습니다.
이 글에서는 grep 명령어를 활용하여 로그 분석에 바로 써먹을 수 있는 실무 중심 예제를 정리합니다.
1. 기본 사용법
grep "키워드" logfile.log
예시:
grep "ERROR" application.log
→ application.log 파일에서 ERROR 문자열이 포함된 모든 라인을 출력합니다.
2. 대소문자 무시 (-i)
grep -i "error" application.log
→ error, ERROR, Error 모두 매칭됩니다.
3. 실시간 로그 감시 (tail + grep)
운영 서버에서 가장 많이 사용하는 패턴입니다.
tail -f application.log | grep "ERROR"
→ 로그가 추가될 때마다 ERROR가 포함된 라인만 실시간 출력됩니다.
4. 여러 키워드 중 하나라도 포함 (OR 조건)
grep -E "ERROR|WARN" application.log
또는
egrep "ERROR|WARN" application.log
→ ERROR 또는 WARN 중 하나라도 포함되면 출력됩니다.
5. 여러 키워드를 모두 포함 (AND 조건)
grep "ERROR" application.log | grep "DB"
→ ERROR 이면서 DB가 포함된 라인만 출력됩니다.
6. 특정 키워드가 없는 라인만 출력 (-v)
grep -v "DEBUG" application.log
→ DEBUG 로그를 제외하고 확인할 때 유용합니다.
7. 라인 번호 함께 출력 (-n)
grep -n "ERROR" application.log
→ 에러 위치를 빠르게 찾을 수 있습니다.
8. 여러 로그 파일에서 검색
grep "ERROR" *.log
하위 디렉토리까지 포함하려면:
grep -r "ERROR" /logs/
9. 키워드 강조 표시 (--color)
grep --color=auto "ERROR" application.log
→ 매칭된 키워드가 색상으로 강조되어 가독성이 좋아집니다.
10. 실무 활용 예시
특정 시간대의 에러만 확인
grep "2025-12-15 16:" application.log | grep "ERROR"
API 요청 + 상태 코드 필터링
grep -E "POST /api|GET /api" access.log | grep "500"
마무리
grep은 단순하지만 로그 분석 생산성을 극적으로 올려주는 필수 도구입니다.
tail, awk, sed와 함께 사용하면 훨씬 강력한 로그 분석이 가능합니다.
'Server > Linux' 카테고리의 다른 글
| [Linux] 리눅스 REST API 사용 방법 (curl, wget) (0) | 2024.04.19 |
|---|---|
| 우분투(ubuntu) 서버 설치 및 네트워크 환경설정 (0) | 2017.02.10 |
| ubuntu 14.04 리눅스 설치 / 네트워크 환경설정 (0) | 2017.02.09 |
| ubuntu hostname 확인/변경하기 (0) | 2017.02.07 |
| java 설치 경로 확인 방법 (0) | 2017.02.06 |