ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • 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만 표시됩니다.

    반응형

    댓글

Designed by Tistory.