리눅스 기반 os에서 주로 서버운영을 하다보면 디스크 과부하를 막아주기 위해 어느정도 기간을 두고 오래된 파일은 지워줘야 하는 경우가 생길 것이다. 나는 쉘 스크립트를 통해 파일을 삭제하는 스크립트를 짜고 crontab을 통해 특정 시간대에 해당 스크립트가 실행되도록 할 것이다.
# Deletefile.sh
#!/bin/bash
# ---------- Custom Config Option ----------
log_path="path/logs" #파일경로 1
save_path="path/file" #파일경로 2
expire_days=30 #실행주기
# -----------------------------------------------
echo "Start Deletefile.sh"
find ${log_path}/* -type f -mtime +${expire_days} -exec rm -f {} \;
find ${save_path}/*.csv -type f -mtime +${expire_days} -exec rm -f {} \;
echo "End Deletefile.sh"
해당 파일을 생성한 뒤 crontab 명령어를 실행시킨다.
crontab -e # 크론텍 편집기 실행
00 00 * * * <sh파일경로> > <sh실행로그파일경로> 2>&1
여기서 00 00 * * *
은 다음과 같은 의미를 지닌다.
* * * * *
분(0-59) 시간(0-23) 일(1-31) 월(1-12) 요일(0-7)
sh파일경로는 말그대로 sh파일경로를 넣어주면 되고 sh실행로그파일경로는 실행한 sh파일에 대한 로그파일 결과이다. 예를들어 Deletefile.sh
가 파일경로라면 뒤에 Deletefile.sh.log
로 간단하게 지정해주면 된다.