X일 후에 파일을 삭제하면 작동하지 않습니다.

X일 후에 파일을 삭제하면 작동하지 않습니다.

나는 이것을 스크립팅하는 여러 방법을 시도했고 crontab이 실패하지 않도록 스크립트를 직접 실행했습니다. 다음은 제가 시도한 것의 예입니다.

find /home/backups -mtime +1 -exec rm {} \;
find /home/backups/* -mtime +1 -exec rm {} \;
find /home/backups/ -mtime +1 -exec rm {} \;

매일 이 파일을 삭제해야 하는데 작동하지 않는 것 같습니다. 실행하면 ls -ld /home/backups긴 파일 목록이 반환됩니다. 이는 처음 두 파일입니다.

-rw-r--r-- 1 루트 루트 8284346 1월 12일 13:00 arksave-2016-01-12--01-00-01.tar.gz
-rw-r--r-- 1 루트 루트 8295428 1월 12 13:15 arksave-2016-01-12--01-15-01.tar.gz

하루가 지났고 이것이 마지막 두 파일입니다.

-rw-r--r-- 루트 1개 38016124 1월 13일 12:30 arksave-2016-01-13--12-30-01.tar.gz
-rw-r--r-- 루트 1개 38016163 1월 13일 12 :45 arksave-2016-01-13--12-45-01.tar.gz

답변1

견적 "TNW"

find가 24시간 전에 파일에 마지막으로 액세스한 기간을 계산할 때 모든 소수 부분은 무시됩니다. 따라서 -atime +1을 일치시키려면 파일에 적어도 2일 전에 액세스했어야 합니다.

따라서 하루 전의 파일을 찾으려면 다음 스니펫 중 하나를 사용할 수 있습니다.

find /home/backups/* -mtime +0

또는

find . -mmin +$((60*24))

관련 정보