라즈베리파이 또는 리눅스 find 명령어로 오래된 파일 삭제하기

라즈베리파이 또는 리눅스 서버를 운영하다보면 일정시간이 지나면

불필요한 파일이나 로그파일을 삭제하고싶지만 자동으로 하는방법을 설명해 드리겠습니다.

일정 시간이 지난 파일을 찾는 방법 : find 명령어

find명령어에 여러가지 옵션이 많이 있습니다만 일단 파일삭제에 필요한 옵션만 이용해 보도록 하겠습니다.

1
2
$ find 명령어를 통해 변경된지 하루가 넘은 파일을 찾기 위해서는 다음과 같이 옵션이 주어져야 합니다.
$ find /home/pi/Documents/* -mtime +1

다음과 같이 리스트 파일을 출력해 보신후 파일이 존재한다고 가정했을때

1
2
-rwxrw-rw-  1 pi pi    0  5月 24 12:00 txt1.txt
-rwxrw-rw- 1 pi pi 0 5月 23 12:00 txt2.txt

현재 날짜가 5월 26일 이라고 하면..

txt1.txt파일은 약1일 전에 만들어진 파일 입니다.

txt2.txt파일은 2일 전에 만들어진 파일 입니다.

1
$ find /home/pi/Documents/* -mtime +1 명령어를 통해서 txt2.txt가 검색이 됩니다.
1
2
3
4
-mtime은 수정된 시간을 기준으로 합니다.
-atime은 접근 시간을 기준으로 합니다.
-ctime은 변경된 시간을 기준으로 합니다.
-amin, -cmin, -mmin은 분을 기준으로 사용합니다.

일정 시간이 지난 파일을 지우는 방법 : find + exec + rm명령어

일정 시간이 지난 파일을 찾아서 지우는것도 역시 find 명령어를 사용하는데요.

이번에는 exec라는 옵션을 사용하면 됩니다.

1
$ find /home/pi/Documents/* -mtime +1 -exec rm {} \;

txt2.txt 파일이 삭제된것을 확인 하실수 있습니다.

PHP공식사이트

https://www.php.net/