-
[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