본문 바로가기

신입사원 일기

[Linux] 일자별로 파일 삭제하기 (mtime)

반응형
개발 서버를 확인하던 중 특정 폴더에서 로그파일들이 많이 적재되어있는 것을 확인했습니다.
몇만건 이상의 파일 중에서 최근일자를 제외하고 모두 삭제하기 위해 파일을 정리해주는 데몬을 살펴보던 중 mtime이라는 명령어를 확인하게 되었습니다.
 mtime 이란?

파일의 데이터가 마지막으로 수정된 날짜와 시간 (일 지정)

해당 명령어를 통해 특정 기간에 작성, 변경된 파일  목록을 조회할 수 있습니다.

 

-mtime n 살펴보기

특정 기간에 작성, 변경된 파일 목록을 조회하기 위해서 find 명령어에 -mtime 옵션을 조회하고 싶은 일자로 함께 조회합니다.

# 6월 22일 밤 10시 기준

 $ find -mtime -2 # 2일(24시간)전 ~ 현재시간 -> 6월 20일 밤 10시 ~ 현재
 
 $ find -mtime 2 # 3일(72시간)전 ~ 2일(24시간)전 -> 6월 19일 밤 10시 ~ 6월 20일 밤 10시
 
 $ find -mtime +2 # 3일(72시간)전 보다 과거 -> 6월 19일 밤 10시 이전 데이터

 

예제 ) 1일전 데이터 모두 삭제하기
# 현재 위치에서 24시간 전 파일형식의 데이터를 찾아서 삭제한다.
$ find . -type f -mtime +0 -exec rm {} \;

 

예제 ) 하루 전부터 변경된 파일 개수 구하기
# 하루 전부터 현재까지 파일 형식의 데이터를 찾아서 개수를 출력
$ find . -type f -mtime -1 | wc -l

 

반응형