반응형
📂 리눅스에서 특정 폴더의 한 달 이상된 파일 자동 삭제 스크립트
리눅스 서버나 NAS, 백업 저장소 등에서는 일정 기간이 지난 파일을 주기적으로 정리하는 것이 시스템 자원 관리에 매우 중요합니다. 아래는 특정 디렉터리에 쌓이는 30일 이상된 파일을 자동으로 삭제하는 쉘 스크립트입니다.
🔧 쉘 스크립트 코드
#!/bin/bash
# 삭제할 대상 디렉터리 (절대경로로 지정)
TARGET_DIR="/home/user/logs"
# 로그 파일 경로
LOG_FILE="/var/log/delete_old_files.log"
# 삭제 기준 (30일 이상 지난 파일)
FIND_CONDITION="-type f -mtime +30"
# 현재 날짜 저장
CURRENT_DATE=$(date +"%Y-%m-%d %H:%M:%S")
echo "[$CURRENT_DATE] 시작: $TARGET_DIR 디렉터리에서 30일 이상된 파일 삭제 시작" >> "$LOG_FILE"
# 파일 찾고 삭제
find "$TARGET_DIR" $FIND_CONDITION -print -delete >> "$LOG_FILE" 2>&1
echo "[$CURRENT_DATE] 완료: 삭제 작업 종료" >> "$LOG_FILE"
📌 주요 설명
항목 | 설명 |
---|---|
TARGET_DIR |
정리할 디렉터리 경로입니다. 예: /var/log/myapp |
FIND_CONDITION |
-mtime +30 은 30일보다 오래된 파일을 의미합니다. |
-print -delete |
삭제 전 경로를 로그에 출력하고 파일 삭제를 수행합니다. |
LOG_FILE |
삭제 내역이 저장될 로그 파일입니다. 에러도 함께 기록됩니다. |
🕒 crontab 등록 (정기 실행)
자동으로 매일 새벽 2시에 실행되도록 하고 싶다면 다음과 같이 crontab
에 등록하세요:
crontab -e
0 2 * * * /bin/bash /home/user/scripts/delete_old_files.sh
💡 쉘 스크립트에 실행 권한을 부여하세요:
chmod +x /home/user/scripts/delete_old_files.sh
✅ 응용 팁
- 확장자 제한:
.log
만 삭제하고 싶다면-name "*.log"
조건을 추가하세요. - 서브디렉터리 포함 제외:
-maxdepth 1
을 사용하여 현재 디렉터리만 검사할 수 있습니다. - 보존 정책 적용:
mtime
값을 변경해 기간 조정 가능 (예:+7
,+90
등).
📈 SEO 최적화 추천 키워드 및 해시태그
추천 키워드:
- 리눅스 자동 파일 삭제
- 쉘 스크립트 파일 정리
- cron 자동화 스크립트
- log 파일 정리 방법
- 리눅스 파일 관리 팁
🧩 관련 추천 주제
logrotate
를 활용한 리눅스 로그 자동 관리 방법tmpwatch
vsfind
명령어 비교- NAS/서버에서 공간 절약을 위한 자동 백업 및 정리 스크립트
systemd
타이머로 자동화 스크립트 대체하기
마치며
리눅스 환경에서는 시스템 자원을 정기적으로 정리하는 것이 효율적인 운영을 위해 필수입니다. 특히 로그 파일이나 임시 파일이 주기적으로 쌓이는 환경에서는 이번에 소개한 쉘 스크립트 자동 삭제 방식을 통해 안정성과 유지보수 비용을 크게 줄일 수 있습니다. 앞으로는 이러한 자동화를 통해 시스템 운영의 효율성을 높여보세요.
반응형
'정보통신기술' 카테고리의 다른 글
정보이론의 기초: Shannon의 제1, 2, 3정리 완전 정복 (2) | 2025.04.30 |
---|---|
하이브리드 암호화(Hybrid Encryption): 대칭과 비대칭의 환상적인 조합 (2) | 2025.04.25 |
ATSC 3.0의 채널 부호화 기술 완전정복 (1) | 2025.04.24 |
왜 6LoWPAN이 등장했을까? IoT 시대를 여는 작지만 강력한 기술의 탄생 배경 (0) | 2025.04.18 |
ATSC 3.0에서 6MHz 대역폭 사용 시 주요 특징 (0) | 2025.04.18 |