리눅스 쉘 스크립트 실전 예제 Part 2: 자동 삭제 스크립트
실무와 개발 현장에서 자주 발생하는 불필요한 파일 정리 작업, 쉘 스크립트로 자동화해보세요.
1. 30일 이상 지난 파일 자동 삭제
용도: 오래된 로그나 백업 파일을 주기적으로 정리할 때 사용합니다. 정리 기준은 마지막 수정 시점입니다.
find /path/to/dir -type f -mtime +30 -delete
설명:
- /path/to/dir: 실제 삭제 대상 디렉토리로 변경합니다.
- -mtime +30: 수정된 지 30일이 지난 파일을 찾습니다.
- -delete: 해당 파일을 삭제합니다.
실행 전에는 -print 옵션으로 대상 목록을 먼저 확인하는 것이 안전합니다.
2. 빈 파일 자동 삭제
용도: 크기가 0인 불필요한 파일을 자동으로 정리할 수 있습니다.
find /path/to/dir -type f -empty -delete
설명:
- -type f -empty: 비어 있는 일반 파일을 찾습니다.
- -delete: 해당 파일을 즉시 삭제합니다.
주의: 실수 방지를 위해 -print로 미리 파일 목록을 검토한 후 실행합니다.
3. 임시 파일(.bak, .tmp) 일괄 삭제
용도: 백업이나 임시 작업 중 생성된 파일(.bak, .tmp 등)을 주기적으로 정리할 수 있습니다.
find /path/to/dir -type f \( -name "*.bak" -o -name "*.tmp" \) -delete
설명:
- \(...\): 여러 조건을 묶기 위한 그룹입니다.
- -o: OR 조건으로 .bak 또는 .tmp 파일을 모두 삭제합니다.
4. 오래된 압축 파일(.gz, .zip) 정리
용도: 3개월 이상 지난 압축 로그 파일 등을 주기적으로 삭제할 때 사용합니다.
find /path/to/logs -type f \( -name "*.gz" -o -name "*.zip" \) -mtime +90 -delete
설명:
- -mtime +90: 90일 이상 지난 파일을 대상으로 합니다.
- -name "*.gz" 또는 "*.zip": 압축된 로그/백업 파일에 사용됩니다.
5. 특정 확장자만 삭제 (*.log)
용도: 디버깅이나 테스트 과정에서 남은 로그 파일 등을 한번에 삭제할 때 유용합니다.
find /path/to/dir -type f -name "*.log" -delete
설명:
- -name "*.log": 확장자가 .log인 파일을 찾아 삭제합니다.
- 주기적으로 실행하거나 크론(cron)에 등록하여 자동 정리할 수도 있습니다.
마무리
삭제 관련 스크립트는 반드시 안전성을 고려하여 사전에 테스트한 후 사용해야 합니다. 특히 -delete 명령은 돌이킬 수 없는 작업이므로, 초기에는 -print 또는 echo로 미리 검토하는 것을 강력히 권장드립니다.
스크립트 예:
#!/bin/bash
# 30일 이상 된 log 파일 삭제
find /var/log/app -type f -name "*.log" -mtime +30 -print >> deleted_files.log
find /var/log/app -type f -name "*.log" -mtime +30 -delete
실행 전 반드시 경로와 조건을 적절히 변경해주세요.
실무에 바로 적용할 수 있는 리눅스 쉘 스크립트 예제, 스마트베이에서 함께합니다.
비즈니스 효율을 높이는 스마트한 IT 솔루션을 제공합니다.
웹사이트 : www.esmartbay.co.kr
E-mail : smartbay.svc@gmail.com
카카오톡 : 바로 상담하기
'서버 & 리눅스 실무팁' 카테고리의 다른 글
| 리눅스 쉘 스크립트 실전 예제 Part 4: 파일 이름 및 확장자 정리 (0) | 2025.06.14 |
|---|---|
| 리눅스 쉘 스크립트 실전 예제 Part 3: 백업 및 압축 자동화 (1) | 2025.06.14 |
| 리눅스 쉘 스크립트 실전 예제 Part 1: 파일 탐색과 정렬 (0) | 2025.06.14 |
| AppStream 모듈을 활용한 PHP, Node.js 버전별 설치 전략 (3) | 2025.06.14 |
| 리눅스 서버 자동 업데이트 설정법: dnf-automatic 으로 보안 패치 쉽게 관리하기 (4) | 2025.06.14 |