#!/bin/bash
# 삭제할 파일 경로와 로그 파일 경로 설정
TARGET_DIR="/oradata/BACKUP/DATA" # 삭제할 파일들이 있는 디렉터리
LOG_DIR="/oradata/BACKUP/log/archive_log" # 로그 파일이 저장될 디렉터리
# 현재 날짜 기준으로 13개월 전 날짜 계산
DATE_THRESHOLD=$(date -d "13 month ago" +%Y%m%d)
CURRENT_DATE=$(date '+%Y%m%d')
# 일자별 로그 파일 생성
LOG_FILE="$LOG_DIR/${CURRENT_DATE}_ARCHIVE_DELETE.log"
# 로그 파일에 시작 시간 기록
echo "=================================" >> $LOG_FILE
echo "삭제 시작 시간: $(date '+%Y-%m-%d %H:%M:%S')" >> $LOG_FILE
# 한 달 이전의 모든 파일 삭제 및 로그 기록
find "$TARGET_DIR" -type f -printf '%TY%Tm%Td %p\n' | sort |
while read -r FILE_DATE FILE_PATH; do
# 파일의 날짜가 13개월 이전인 경우에만 삭제
if [[ $FILE_DATE -lt $DATE_THRESHOLD ]]; then
rm "$FILE_PATH"
echo "삭제된 파일: $FILE_PATH (파일 일자: $FILE_DATE)" >> $LOG_FILE
fi
done
# 로그 파일에 종료 시간 기록
echo "삭제 종료 시간: $(date '+%Y-%m-%d %H:%M:%S')" >> $LOG_FILE
echo "=================================" >> $LOG_FILE
결과값
=================================
삭제 시작 시간: 2024-11-04 17:22:08
삭제된 파일: /ora_arch/$ORACLE_SID/$ORACLE_SID_1_9_1177592019.arc (파일 일자: 20240822)
삭제된 파일: /ora_arch/$ORACLE_SID/$ORACLE_SID_1_10_1177592019.arc (파일 일자: 20240824)
삭제된 파일: /ora_arch/$ORACLE_SID/$ORACLE_SID_1_11_1177592019.arc (파일 일자: 20240828)
삭제된 파일: /ora_arch/$ORACLE_SID/$ORACLE_SID_1_12_1177592019.arc (파일 일자: 20240831)
삭제 종료 시간: 2024-11-04 17:22:08
=================================
'OS > Linux' 카테고리의 다른 글
[SCHEDULER] CRONTAB 설정 관련 (0) | 2023.03.14 |
---|---|
[SHELL] 쉘스크립트_sql문 실행 (0) | 2023.03.09 |
[SHELL] 쉘 스크립트_프로세스 상태 확인 (0) | 2023.03.09 |
[OS] 커널 부팅 순서 변경하기 (0) | 2023.02.13 |
[ETC] Samba 설치 및 Linux와 Window간 파일 공유하기 (0) | 2023.01.30 |