오늘은 생성된지 7일 지난 파일을 리눅스 서버에서 삭제하는 기능을 만들어보았다
AS-IS) 자바에서 @Cron으로 매일 파일 삭제. 한 디렉토리에 하위 디렉토리 엑셀파일들이 있어 삭제가 편했다
TO-BE) 디렉토리 밑에 디렉토리가 있어 파일을 삭제하기 위해선 기존 로직을 수정해야했다.
이럴거면 그냥 리눅스에서 바로 지워버리자!
먼저, 운영서버에 바로 적용할 수 없으므로 개발서버에 적용한다
root계정으로 로그인할 필요는 없어 사용자 계정으로 로그인했다
#!/bin/bash
TARGET_DIR="디렉토리경로"
top_dirs=$(find "TARGET_DIR" -mindepth 1 -maxdepth 1 -type d -mtime +7)
echo "$top_dirs"
echo "$top_dirs" | xargs rm -rf
타겟 디렉토리째로 삭제 ==> -mindepth 1 -maxdepth 1 -type d
생성 일주일 지난 디렉토리 삭제 ==> -mtime +7
디렉토리를 재귀적으로 강제삭제 ==> rm -rf
당연하지만 파일은 사용자 계정으로 읽고 쓰고 실행할 수 있어야 한다
crontab -l로 기존의 배치 목록을 조회하고,
crontab -e를 통해 배치를 등록할 수 있다.
0 0 * * * sh파일경로 로 등록해준다
참 쉽죠?