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"
반응형