저번 시간에 운영 1,2번 서버를 mount를 하였고
업로드된 파일이 오래된 파일이면 자동적으로 삭제되도록 crontab을 이용하여 적용하기로 하였다.
오래된 파일의 기준은 액세스, 수정, 변경 시간으로 잡을 수 있다. (Access, Modify, Change)
어떤 시간을 기준으로 삭제를 할까 고민을 하다가, 서비스 용도에 따라 최종 수정 시간을 기준으로 삭제하기로 하였다.
처음에 20일 경과된 파일을 삭제 하려고 n(일수)를 20으로 지정하였는데
공부하면서 잘못된 범위인걸 알게되었다. 더 정확하게 알아보고 적용해보자...!
하루의 기준을 0시로 설정하여 달력 일수 단위로 범위를 지정 하려는 경우 daystart 옵션을 사용하면 된다.
리눅스에서 crontab은 주기적인 작업을 자동으로 실행시켜주는 유틸리티
crontab을 이용해 설정한 작업은 시스템 부팅 후 백그라운드에서 항상 실행되므로, 서버 운영 등에서 매우 유용하게 사용된다.
crontab은 다음과 같은 옵션을 사용할 수 있다.
-e: crontab을 편집합니다. 새로운 작업을 추가하거나, 기존 작업을 편집할 수 있습니다.
-l: 현재 crontab에 등록된 작업을 확인합니다.
-r: 현재 crontab에 등록된 모든 작업을 삭제합니다.
-u [사용자명]: 특정 사용자의 crontab을 실행합니다. 이 옵션을 지정하지 않으면 현재 사용자의 crontab을 실행합니다.
-i: 삭제할 작업을 확인하고 삭제할지 묻습니다. 이 옵션을 지정하지 않으면 바로 삭제합니다.
분 시 일 월 요일 실행 명령어
여기서, 각 필드는 다음과 같은 의미를 가집니다.
분: 0~59의 값을 가집니다.
시: 0~23의 값을 가집니다.
일: 1~31의 값을 가집니다.
월: 1~12의 값을 가집니다.
요일: 0~6의 값을 가집니다. (0은 일요일, 6은 토요일을 나타냅니다.)
실행 명령어: 해당 시간에 실행할 명령어를 입력합니다.
30 17 * * * /home/user/test.sh
Access: 파일에 대한 최종 엑세스 시간
Modify: 파일에 대한 최종 수정 시간
Change: 파일에 대한 최종 변경 시간
find 명령어로 파일 타입들 중에서 21일 이상 지난 파일을 찾으면 정상적으로 출력된다.
find 명령어에서 -mtime옵션은 파일명에 있는 날짜가 아니라 파일의 타임스탬프로 파일을 검색한다.
기본 사용법은 find -mtime n (일수)를 지정하는데 (n일 전 = n x 24시간전)
n이 3 이라고 해서 바로 3일전이 아니라 24시간이 추가 범위적으로 계산됨을 볼 수 있다.
지정된 n숫자 x 24 를 기준시간으로 정하고,
기준시간에서 24시간 과거 시간까지를 시간범위로 지정한다.
find -mtime +2 : 3일(72시간) 보다 과거인 보다 이후에 수정된 파일 (기준에서 과거 시간 전체가 검색 대상)