-
Linux - grep tail 명령어 실습으로 파해치기linux 2024. 9. 23. 15:28반응형
grep tail 명령어 실습으로 파해치기
예시 로그 파일 생성
우선, 로그 파일을 하나 만들어보겠습니다. 로그 파일은 보통 날짜와 함께 이벤트나 오류 메시지가 포함됩니다.
echo "2024-09-23 10:00:00 INFO User login successful" > system.log echo "2024-09-23 10:05:00 ERROR Failed to connect to database" >> system.log echo "2024-09-23 10:10:00 INFO Data backup started" >> system.log echo "2024-09-23 10:15:00 ERROR Disk space low" >> system.log echo "2024-09-23 10:20:00 INFO Data backup completed" >> system.log echo "2024-09-23 10:25:00 WARNING High memory usage detected" >> system.log echo "2024-09-23 10:30:00 INFO User logout successful" >> system.log
이제 이 로그 파일을 grep과 tail로 분석하는 방법을 보여드리겠습니다.
1. tail로 최근 로그 확인
로그 파일의 마지막 몇 줄만 확인하고 싶을 때 tail을 사용하면 됩니다. 최근 5개의 로그 항목만 보고 싶다면:
tail -n 5 system.log
결과:
2024-09-23 10:10:00 INFO Data backup started 2024-09-23 10:15:00 ERROR Disk space low 2024-09-23 10:20:00 INFO Data backup completed 2024-09-23 10:25:00 WARNING High memory usage detected 2024-09-23 10:30:00 INFO User logout successful
2. grep으로 특정 패턴 검색
로그 파일에서 특정 이벤트나 오류를 검색할 때 grep을 사용할 수 있습니다.
- 오류(ERROR)만 검색:
grep "ERROR" system.log
결과:
2024-09-23 10:05:00 ERROR Failed to connect to database 2024-09-23 10:15:00 ERROR Disk space low
- 경고(WARNING)만 검색:
grep "WARNING" system.log
결과:
2024-09-23 10:25:00 WARNING High memory usage detected
3. grep과 tail을 조합하여 최근 오류 로그 검색
최근 로그에서만 특정 패턴을 검색할 때는 tail과 grep을 조합하여 사용할 수 있습니다. 예를 들어, 최근 5개의 로그 중에서 오류(ERROR)만 검색하려면:
tail -n 5 system.log | grep "ERROR"
결과:
2024-09-23 10:15:00 ERROR Disk space low
4. 로그 파일에서 특정 시간대 로그 검색
로그 파일에서 특정 시간대의 로그만 검색할 수도 있습니다. 예를 들어, 10시 20분에 발생한 로그만 찾으려면:
grep "10:20:00" system.log
결과:
2024-09-23 10:20:00 INFO Data backup completed
5. -v 옵션을 사용한 제외 검색
grep의 -v 옵션을 사용하면 특정 패턴을 제외하고 나머지를 출력할 수 있습니다. 예를 들어, INFO 로그를 제외하고 다른 유형의 로그만 보고 싶다면:
grep -v "INFO" system.log
결과:
2024-09-23 10:05:00 ERROR Failed to connect to database 2024-09-23 10:15:00 ERROR Disk space low 2024-09-23 10:25:00 WARNING High memory usage detected
6. grep의 -i 옵션을 사용한 대소문자 구분 없는 검색
로그 파일에 대소문자가 섞여 있을 경우, 대소문자 구분 없이 검색하려면 -i 옵션을 사용할 수 있습니다. 예를 들어 error를 대소문자 상관없이 검색하려면:
grep -i "error" system.log
7. 실시간 로그 확인 (tail -f)
서버의 로그 파일이 계속해서 갱신되는 상황에서 실시간으로 로그를 확인하려면 tail -f를 사용할 수 있습니다. 로그 파일의 업데이트를 실시간으로 확인하면서 특정 패턴을 실시간으로 찾고 싶을 때는 다음과 같이 사용할 수 있습니다.
tail -f system.log
이 명령어는 로그 파일에 새로운 내용이 추가될 때마다 화면에 실시간으로 표시해 줍니다. 실시간으로 로그를 확인하면서 grep을 사용할 수도 있습니다.
tail -f system.log | grep "ERROR"
이렇게 하면 실시간으로 발생하는 로그 중 ERROR만 표시됩니다.
반응형'linux' 카테고리의 다른 글
Linux - ps -ef 명령어 (0) 2024.09.25 Linux - tail명령어, tail-f 명령어 차이점 (0) 2024.09.23 Docker를 통해 Linux 설치 및 tail,grep 명령어 실습 (1) 2024.09.23 [Linux] 시간 및 기타 커맨드 (0) 2023.07.17 [Linux] 압축 관련 커맨드 (0) 2023.07.17