회사에서 업무를 하다가, Log 파일이 많이 생성이 되고 삭제할 필요성이 있어서 작성
로그가 생성된지 10일이 지나면, 압축 후 디렉토리는 삭제
그 이후 5일이 지나면 해당 압축파일 마저도 삭제하는 스크립트다.
요즘 어플리케이션이나, OS는 로그로테이션, 삭제 옵션이 있어서 사용은 잘 안하겠지만
그럼에도 필요할 때가 있으니 기록용으로 작성
"압축대상디렉토리"
"하위디렉토리명"
항목만 원하는 것으로 변경하면 다른 환경에서도 사용 가능합니다.
#!/bin/bash
# 환경변수
compress_target_dir="압축대상디렉토리"
keep_compressed_days=10
echo "압축대상 디렉토리의 시간(일)"
remove_old_days=$((keep_compressed_days + 5))
echo "압축 된 후 삭제할 시간(일)"
# 오늘 날짜 구하기
today=$(date +%Y%m%d)
# 작업 디렉토리로 이동
cd $compress_target_dir
# 압축 대상 로그 디렉토리 목록 확인
find . -type d -name "하위디렉토리명" -mtime +$keep_compressed_days | while read -r dir; do
# 디렉토리 이름 추출
log_date=$(basename "$dir")
# 압축되지 않은 로그 파일 확인
if [ -d "$dir" ]; then
# 압축
if tar -czvf "$dir.gz" "$dir"; then
echo "$log_date 로그 압축됨"
# 압축 후 디렉토리 삭제
if [ -d "$dir" ]; then
rm -rf "$dir"
echo "$log_date 로그 압축 후 삭제됨"
fi
else
echo "오류: $log_date 로그 압축 실패"
fi
fi
# 오래된 압축 로그 삭제
if [ $(find "$dir.gz" -mtime +$remove_old_days) ]; then
# 삭제
rm "$dir.gz"
echo "$log_date 압축 로그 삭제"
fi
done
'시스템 > Linux' 카테고리의 다른 글
[OS] scp를 사용하여 서버간 파일 전송 (0) | 2024.12.04 |
---|---|
load average 관련 (0) | 2024.10.02 |
[OS] linux에서 사용하면 편리한 명령어 정리 (0) | 2024.06.19 |
CPU 부하 줄때 간단히 사용할만한 방법 (0) | 2023.08.01 |
[OS] linux에서 사용하면 편리한 명령어 정리 (0) | 2023.05.02 |
Linux File system 증설 (0) | 2021.07.12 |
/sys/kernel/security/ima 파일 (0) | 2021.07.09 |