본문 바로가기
프로그래밍/LINUX , UNIX

crontab을 이용해서 오래된 파일을 자동으로 삭제

by 애플 로그 2022. 2. 18.
반응형

crontab을 이용해서 오래된 파일을 자동으로 삭제

 

crontab을 이용해서 주기적으로 오래된 파일을 삭제하는 shell 파일을 만들일이 생겼다.

application에서 개발을해서 주기적으로 삭제하는것이 가장 좋은 방법이라 생각되나, 

현실은 그렇지 못한 경우가 많다고 생각한다.

 

attach_delete.sh 을 생성하자

 

PERIOD_DAY :  파일 보관 주기

TARGET_DIR  : 삭제 대상의 폴더

 


#!/bin/sh

PERIOD_DAY=60
TARGET_DIR=/home/app/attach_files

NOW=$(date +"%y-%m-%d %T")

echo "---------- [$NOW] cron_attach_delete.sh started. --------"
echo "### delete period day : $PERIOD_DAY"

DELETE_LIST=`find "$TARGET_DIR" -mtime +"$PERIOD_DAY"`
echo -e "### delete list :\n $DELETE_LIST"

DELETE_COUNT=`find "$TARGET_DIR" -mtime +"$PERIOD_DAY" | wc -l`
echo "### delete count : $DELETE_COUNT"

find "$TARGET_DIR" -mtime +"$PERIOD_DAY" -exec rm -rf {} \;

echo "---------- [$NOW] cron_attach_delete.sh ended. ----------"

 

 

crontab -e  를 실행하여 crontab에 원하는 시간에 동작 할수 있도록 등록하자.

 

예 ) 새벽2시마다 삭제 스크립트를 실행 시키고,  attach_delete.log 라는 이름으로 로그를 남긴다.

0 2 * * * /home/app/bin/attach_delete.sh >> /home/app/logs/attach_delete.log 2>&1

댓글