CIFS 설치 폴더에 /var/www 폴더의 백업(tar.gz)을 생성하는 백업 스크립트가 있습니다.
메모리를 낭비하는 오래된 백업을 삭제하기 위해 아카이브가 20일보다 오래된지 매일 확인하고 필요한 경우 특정 tar.gz 파일을 삭제하는 cronjob을 만들었습니다.
내 계획은 이렇습니다.
0 1 * * * find /my/cifs/mnt/path/*.tar.gz -mtime +20 -exec rm {} \;
맞아? 문제가 있는 것은 아니지만 백업 폴더에 있는 파일뿐만 아니라 20일이 지난 하드 드라이브의 모든 파일을 삭제합니다.
답변1
일반적으로 다음 -name
옵션을 사용합니다.
0 1 * * * find /my/cifs/mnt/path/ -name '*.tar.gz' -mtime +20 -exec rm {} \;
또한, 꼭 찾아보세요문서:
0 1 * * * find /my/cifs/mnt/path/ -name '*.tar.gz' -type f -mtime +20 -exec rm {} \;
이 -name
옵션을 분할하면 지정된 디렉터리와 해당 하위 디렉터리에서 파일을 찾을 수 있습니다. 또한 아카이브가 없으면 find
오류가 보고됩니다(아무 조치도 취하지 않고 단순히 계속하는 것이 아니라).
마지막으로 명령 끝을 변경하여 특이한 문자(예: 공백)가 포함된 파일 이름을 처리할 수 있습니다.
0 1 * * * find /my/cifs/mnt/path/ -name '*.tar.gz' -type f -mtime +20 -exec rm {} +