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