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
'좋아하는 것_매직IT > 99.업무자동화하기' 카테고리의 다른 글
| root 권한으로 erpadmin 사용자에게 crontab 사용 권한을 부여하는 방법입니다. (0) | 2026.01.07 |
|---|---|
| EFK 스택: Elasticsearch, Fluentd, Kibana로 로그 데이터 관리하기 (0) | 2024.01.16 |
| fluentd 란 무엇인가? 그리고 설치하기 (0) | 2024.01.12 |
| Python 과 텔레그램 봇을 활용한 네이버 검색결과 공유하기 (0) | 2022.09.02 |
| bash 쉘에서 예전에 실행했던 명령들을 한꺼번에 다시 실행하기(feat.fc 명령) (0) | 2022.07.30 |