파일을 삭제하는 쉘 스크립트

파일을 삭제하는 쉘 스크립트

6일이 지난 파일을 삭제한 다음 삭제된 파일을 기록하려고 합니다.
지금까지.

sh파일에서 나는 다음을 얻었습니다.

find /home/pi/ftp/upload -type f -mtime +6 -exec rm {} +

그럼 안에sudo crontab

59 23 * * * /home/pi/scripts/cullftp.sh > /var/log/ftp/`date +\%Y-\%m-\%d-\%H\%M\%S`-cull.log 2>&1

하지만 자정에 실행되면 빈 파일만 생성되고 파일은 삭제되지 않습니다.

코드의 이 부분은 작동하지만:

find /home/pi/ftp/upload -type f -mtime +6

이 문제를 해결하는 가장 좋은 방법은 무엇입니까?

답변1

1) 스크립트 파일이 실행 가능하고 올바른 hashbang 줄( #!/bin/sh또는 #!/bin/bash유사 항목)이 있는지 확인하십시오. 그러나 실행 가능하지 않으면 오류가 발생합니다.

2) 아무것도 인쇄되지 않습니다. 예를 들어 또는 지원 하는 경우 인쇄 파일 이름을 find ... -exec rm명시적으로 알려야 합니다 .findfind ... -exec rm + -printfind ... -delete -printfind-delete

3) 적어도 GNU find에는 -mtime +6흥미로운 반올림이 있습니다. 먼저 시간을 하루(24시간)로 반올림한 다음 결과 시간이 6보다 큰지 확인합니다. 결과적으로 최소 7*24시간이 지난 파일만 일치합니다. 비슷한 것을 사용하면 -mmin +8640영향이 줄어듭니다. (6일 * 24시간/일 * 60분/시간 = 8640분)

관련 정보