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