Crontab으로 오래된 파일 일괄 삭제하기

오늘은 Crontab 기능을 활용해서 오래된 파일을 삭제하는 방법을 알아보겠습니다.

 

Crontab 오래된 파일 삭제하기

아래와 같은 shell 명령어로 삭제할 수 있는데요.

 

find 삭제하고자 하는 폴더   mtime 지난 일자 - name 파일 종류 exec rm -rf {}의 순입니다.

 

저는 log 파일에 쌓이고 있는 csv확장자를 3일마다 삭제하는 코드입니다.

 

-rf : 삭제 여부를 묻지 않으며 하부 파일이 있는 디렉토리까지 삭제하는 옵션입니다.

 

find 명령어

 

리눅스에서 파일을 찾기 위해서는 find 명령어를 사용하는데요.

 

find 명령어의 다양한 옵션으로 파일을 찾을 수도 있고, 다른 옵션등을 조합하여 내용을 검색할 수도 있습니다.

 


find [경로] [옵션] [대상]

 

#!/bin/sh

find /home/ubuntu/python/log/ -mtime +3  -name "*.csv" -exec rm -rf {} \;

이외에도 delete 명령어를 통해서 삭제할수도 있는데요.

 

아래 명령어를 하나씩 살펴보겠습니다.

 

find . -name '*.csv' -exec rm {} \;

위 명령어는 현재 디렉토리와 하위 디렉토리에서 .csv로 끝나는 모든 파일을 찾아서 화면에 나타내고

 

그파일을 모두 삭제하는 명령어 입니다.

 

Find 다음에 -exec 선택사항은 다음 명령 (rm)을 실행하는 명령어 입니다.

 

{ } 는 find 명령이 찾은 파일을 의미하고, 명령 문자열을 끝내는세미콜론 (;) 앞에  ESC 문자로 역빗금(\)을 붙입니다.

 

기본적인 용법은 아래와 같이 진행하시면 됩니다.

 

 

이 경우에는 하위 폴더는 삭제되지 않는다는 단점이 있습니다.

 

다만 rm -rf 옵션은 파일을 다 삭제할 수 있으니 항상 조심해야하는 명령어입니다.

find /home/ubuntu/python/log/ -name '*.csv' -mtime +3 -delete

이런 방식으로 shell Script를 제작하고

 

이를 Crontab에 등록하시면 됩니다.

 

Crontab 등록은 아래와 같은 방식으로 작업하시면 됩니다.

 

https://dorudoru.tistory.com/2028

 

파이썬 crontab으로 스케쥴링 하기

파이썬을 서버에서 crontab을 통해서 스케쥴링하여 실행하는 방법을 알아보겠습니다. Crontab 사용법 crontab은 리눅스에서 원하는 작업을 원하는 시간에 스케쥴링 해주는 툴입니다. 일반적으로 shell

dorudoru.tistory.com

그럼 잘 활용하시기 바랍니다.