본문 바로가기

좋아하는 것_매직IT/99.업무자동화하기

디렉토리의 mtime(수정 시간) 기준으로 3일 초과된 것만 삭제

728x90
반응형

아래는 디렉토리의 mtime(수정 시간) 기준으로 3일 초과된 것만 삭제하는 쉘 스크립트입니다.
디렉토리명 형식과 무관하게 실제 파일시스템 시간 기준이라 더 안전합니다.


1️⃣ 쉘 스크립트 (cleanup_backup_mtime.sh)

 
#!/bin/bash BASE_DIR="/opt/tomcat/deploy/backup" PREFIX="uone_" DAYS=3 # 로그용 시간 echo "===== Cleanup start: $(date '+%Y-%m-%d %H:%M:%S') =====" # mtime 기준 3일 초과된 디렉토리 삭제 find "$BASE_DIR" \ -maxdepth 1 \ -type d \ -name "${PREFIX}*" \ -mtime +$DAYS \ -print \ -exec rm -rf {} \; echo "===== Cleanup end: $(date '+%Y-%m-%d %H:%M:%S') ====="

2️⃣ 실행 권한 부여

 
chmod +x /opt/tomcat/deploy/cleanup_backup_mtime.sh

3️⃣ 크론 등록 (매일 새벽 3시)

 
crontab -e
 
0 3 * * * /opt/tomcat/deploy/cleanup_backup_mtime.sh >> /opt/tomcat/deploy/cleanup_backup.log 2>&1

4️⃣ 동작 기준 설명 (중요)

옵션의미
-mtime +3 현재 시점 기준 3일 초과
-maxdepth 1 backup 바로 아래 디렉토리만
-type d 디렉토리만
-name "uone_*" uone_로 시작하는 것만

👉 예시

  • 오늘이 1월 10일 새벽 3시
  • 1월 6일 이전에 마지막으로 수정된 디렉토리 → 삭제
  • 1월 7~10일 수정된 디렉토리 → 유지

5️⃣ 안전한 Dry-Run 테스트 (강력 추천)

삭제 전 반드시 한 번 실행해보세요:

 
find /opt/tomcat/deploy/backup \ -maxdepth 1 \ -type d \ -name "uone_*" \ -mtime +3 \ -print

출력 결과가 삭제 대상입니다.
문제 없으면 스크립트 실행 👍

728x90
300x250