오늘은 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
그럼 잘 활용하시기 바랍니다.
'Programming' 카테고리의 다른 글
Iexpress 활용해서 ps1 파일 exe 만들기 (0) | 2023.03.15 |
---|---|
Target CNF (stable/cnf/Commands-arm64) is configured multiple times in /etc/apt/sources.list:58 and /etc/apt/sources.list:60 에러 (0) | 2023.03.13 |
Let's Encrypt Nginx에서 무료 SSL인증서 받는 방법 (0) | 2023.02.02 |
웹사이트 개발 스택 확인하는 방법 - wappalyzer 사용후기 (0) | 2023.01.28 |
Ubuntu ssh 접속방법 (0) | 2022.11.21 |