ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [Bash] 로그 파일 관리
    Bash 2023. 10. 28. 14:01
    반응형

    로그 파일 관리는 스크립트 개발 및 디버깅에 필수적입니다. 로그 파일을 사용하여 스크립트의 동작 및 문제 해결을 추적할 수 있습니다. 다음은 로그 파일 작성 및 관리에 관한 고급 팁과 예제입니다.

    1. 로그 파일 작성:

    echo 명령어를 사용하여 스크립트 실행 중에 로그를 생성하고 파일에 저장할 수 있습니다.

    예제: 로그 파일 작성

    #!/bin/bash
    
    log_file="script_log.txt"
    
    # 현재 날짜 및 시간을 로그에 기록
    echo "$(date): Script started." >> "$log_file"
    
    # 다른 로그 메시지 기록
    echo "Some log message." >> "$log_file"
    
    # 스크립트 종료 시 날짜 및 시간 기록
    echo "$(date): Script completed." >> "$log_file"




    2. 로그 파일 회전:

    로그 파일을 지속적으로 작성하면 파일이 커져서 관리가 어려워집니다. 따라서 로그 파일을 일정 기간 또는 크기에 따라 회전시키는 것이 좋습니다.

    예제: 로그 파일 회전

    #!/bin/bash
    
    log_file="script_log.txt"
    max_log_size=1000000  # 최대 로그 파일 크기 (바이트)
    
    # 로그 파일 크기 확인
    log_file_size=$(stat -c%s "$log_file")
    
    # 로그 파일 크기가 최대 크기를 초과하면 로그 파일을 백업하고 새로운 파일로 시작
    if [ "$log_file_size" -gt "$max_log_size" ]; then
        mv "$log_file" "${log_file}_backup_$(date +%Y%m%d%H%M%S).txt"
    fi
    
    # 로그 작성
    echo "$(date): Log message." >> "$log_file"




    3. 로그 파일 롤링:

    로그 파일을 지정된 수의 파일로 롤링하고 오래된 로그를 삭제하여 디스크 공간을 절약할 수 있습니다.

    예제: 로그 파일 롤링

    #!/bin/bash
    
    log_dir="/var/log/myapp"
    max_log_files=5
    
    # 로그 디렉토리로 이동
    cd "$log_dir"
    
    # 로그 파일 수 확인
    log_files_count=$(ls -1 | grep -E '^script_log_[0-9]{8}.txt$' | wc -l)
    
    # 최대 파일 수보다 많은 로그 파일이 있으면 오래된 파일 삭제
    if [ "$log_files_count" -ge "$max_log_files" ]; then
        oldest_log=$(ls -1 | grep -E '^script_log_[0-9]{8}.txt$' | sort | head -n 1)
        rm "$oldest_log"
    fi
    
    # 새로운 로그 파일 생성
    log_file="script_log_$(date +%Y%m%d).txt"
    
    # 로그 작성
    echo "$(date): Log message." >> "$log_file"




    반응형

    'Bash' 카테고리의 다른 글

    [Bash] 실행권한  (1) 2023.10.28
    [Bash] SSH SCP  (1) 2023.10.28
    [Bash] 환경 변수  (3) 2023.10.28
    [Bash] 커맨드 서브스텔링  (1) 2023.10.28
    [Bash] 권한 관리  (1) 2023.10.28
Designed by Tistory.