Linux에서 30일이 지난 파일을 삭제하는 방법

Linux에서 30일이 지난 파일을 삭제하는 방법

2022-10-18 last update

5 minutes reading files find delete old files
서버에서 사용하지 않는 오래된 파일을 정기적으로 정리하는 것이 가장 좋습니다. 예를 들어, 서버에서 파일 또는 데이터베이스의 매일/시간별 백업을 실행하는 경우 서버에 많은 정크가 생성됩니다. 따라서 정기적으로 청소하십시오. 이를 위해 백업 디렉토리에서 오래된 파일을 찾아 정리할 수 있습니다. 이 문서에서는 30일이 지난 파일을 찾고 삭제하는 방법에 대해 설명합니다. 여기서 30일 이전은 마지막 수정 날짜가 30일 이전임을 의미합니다.

1. 30일 이상 된 파일 삭제

find command을 사용하여 X일 이상 수정된 모든 파일을 검색하고 삭제할 수 있습니다. 또한 필요한 경우 단일 명령으로 삭제할 수 있습니다. 먼저/opt/backup 디렉토리 아래에 30일 이상 된 모든 파일을 나열합니다.
find /opt/backup -type f -mtime +30 
파일 목록을 확인하고 위의 명령에 유용한 파일이 나열되지 않았는지 확인하십시오. 확인되면 다음 명령을 사용하여 해당 파일을 삭제하는 것이 좋습니다.
find /opt/backup -type f -mtime +30 -delete 

2. 특정 확장자를 가진 파일 삭제

모든 파일을 삭제하는 대신 명령을 찾기 위해 더 많은 필터를 지정할 수도 있습니다. 예를 들어 확장자가 ".log"이고 30일 이전에 수정된 파일만 삭제할 수 있습니다. 먼저 테스트를 실행하고 기준과 일치하는 파일을 나열합니다.
find /var/log -name "*.log" -type f -mtime +30 
목록이 확인되면 다음 명령을 실행하여 해당 파일을 삭제하십시오.
find /var/log -name "*.log" -type f -mtime +30 -delete 
위의 명령은 확장자가 .log이고 마지막 수정 날짜가 30일보다 오래된 파일만 삭제합니다.

3. 재귀적으로 이전 디렉토리 삭제

디렉토리가 비어 있지 않으면 -delete 옵션이 실패할 수 있습니다. 이 경우 Linux rm 명령을 find와 함께 사용하여 삭제를 수행합니다. 아래 명령을 사용하여 90일 이전에 수정된/var/log 아래의 모든 디렉토리를 검색합니다.
find /var/log -type d -mtime +90 
여기에서 -exec 명령줄 옵션을 사용하여 rm 명령을 실행할 수 있습니다. 찾기 명령 출력은 입력으로 rm 명령에 전송됩니다.
find /var/log -type d -mtime +30 -exec rm -rf {} \; 
경고: 디렉토리를 제거하기 전에 삭제되는 사용자 디렉토리가 없는지 확인하십시오. 때로는 상위 디렉토리 수정 날짜가 하위 디렉토리보다 이전일 수 있습니다. 이 경우 재귀 삭제는 하위 디렉토리도 제거할 수 있습니다.

결론

Linux 명령줄에서 지정된 날짜보다 더 오래 전에 수정된 파일을 찾고 삭제하는 방법을 배웠습니다. 그러면 원치 않는 파일에서 시스템을 정리하는 데 도움이 됩니다.