본문 바로가기

OS/Linux

find로 지난 LOG 또는 템플릿 파일/ 디랙토리 삭제하기

서버를 운영하다보면 로그 파일과 템플릿 파일이 점점 쌓여서 넘쳐날 경우가 있다. 이런 파일들은 일정 기간이 지나면 삭제해야하는데, 매번 찾아서 삭제하기 번거로우니까 배치로 삭제해보려고 한다.


삭제할 파일이 /log 안에 있다고 가정하자.


30일이 지난 파일을 찾을 경우 다음과 같이 명령어를 입력하면 된다.

find /log -name "*.log"


그런데 이 경우 하위 디렉토리에 있는 log 파일도 검색해주기 때문에 현재 위치만 하기 위해서는 옵션을 하나 추가해야 한다.

find /log -name -maxdepth 1 "*.log"


파일이 아니고 디렉토리의 경우에는 옵션을 다르게 해야한다.

find /log -type d


검색한 파일 중에 하루 이상 지난 파일을 검색 하려면 다음과 같다.

find /log -name -maxdepth 1 "*.log" -mtime +1


-name : 원하는 이름을 검색할 때 사용

-type d : 디렉토리 검색

-maxdepth : 깊이 검색인데, 1을 사용하면 현재 디렉토리만 검색

-mtime : 일 단위로 검색. +1 하루 이상 지난 파일. +가 없으면 하루 지난 파일.


여기에 검색한 내용을 삭제하려면 명령어 뒤에 추가해주면 된다.

find /log -name -maxdepth 1 "*.log" -mtime +1 -exec rm -rf {} \;


하루 이상 지난 log 파일을 찾아 삭제한다. 시간단위는 몇가지 더 있으니 필요하면 find 옵션에서 확인해보자.


추가: 다른 방법을 찾아서 추가한다.

find /log -maxdepth 1 -name "*.log" -mtime +1 -delete



'OS > Linux' 카테고리의 다른 글

서버 접속자 수 확인해보기  (0) 2018.02.28
리눅스 OS,하드웨어 정보 확인  (0) 2017.07.18
캐시 메모리 비우기  (0) 2016.09.19
UNIX 시스템 1~5주차  (0) 2015.11.11
VMware에 설치된 SentOS를 외부에서 원격 접근  (0) 2015.09.17