2011-02-08 4 views
1

그 삭제 크론에 구글을 보았다 - 나는 것이있다 : dslcart- 모든 오래된 파일 (날짜)을 삭제하도록되어 그러나이 작동하지 않습니다삭제 파일

17 13 * * * root find /backups/dslcart-* -mtime +6 -exec rm {} \; 

. 나는 이것이 어디서 잘못 될 수 있는지 잘 모르겠다.

어떤 통찰력도 인정 될 것입니다.

0 1 * * * 찾을 수는/var/lib 디렉토리/amavis/virusmails -ctime :

+0

** 무엇이 문제이거나 작동하지 않습니까 ** – ajreal

+0

"작동하지 않습니다"는 의미는 무엇입니까? –

+0

(후손을 위해)'find/backups -maxdepth 1 -name 'dslcart- *'-mtime +6 -delete'을 시도하십시오. 왜 버전이 실패했는지 모르겠지만'-delete'를 사용하는 것이 훨씬 안전합니다. 그리고 삭제할 파일 목록이 너무 크면 명령 줄에서 파일 목록을 반복하지 않고 확장하므로 버전이 실패 할 수 있습니다. 파일을 통해. – mc0e

답변

0

쉘 스크립트를 작성하지 않거나 더 쉽게 파일을 삭제하는 기능을 수행하는 Perl 스크립트를 작성하십시오. 이렇게하면이 이벤트가 발생할 때마다 기능과 출력을보다 잘 제어 할 수 있습니다. 그러면 cron 이벤트를 기다리지 않고 함수를 테스트 할 수 있습니다. cron에서 스크립트를 호출하기 만하면됩니다.

+0

perl 스크립트는 좋은 생각이지만 불행히도 perl에 익숙하지 않습니다. 제게 좋은 perl 튜토리얼을 가르쳐 주시겠습니까? 또는 비슷한 무엇입니까? – joe

+1

나쁜 일이 하나 더. 우리가 정리하려고하는 디렉토리의 경로는 무엇입니까? 아픈 여기에 스크립트를 게시하십시오. – DoctorLouie

+0

louierd, 감사합니다! 디렉토리 경로는/var/www/외부의/backups입니다. 나는 7 일 더 오래된 파일 (dslcart- [날짜])을 삭제하려고합니다. – joe

0

내 메일 서버에 30 일 이전의 검역소에 보관 된 스팸 메일 파일을 정리 (내 'amavis'사용자에 대한)이 사용 +30 - 및 -type 'f'-exec rm {} \;

+1

또한이 와일드 카드가 확장되지 않을 것이라고 생각합니다./backups/dslcart- * –

+0

오, 그게 내가 생각한 것입니다. 하지만 exec rm없이 cmd를 실행하면 디렉토리 안의 파일에 올바른 경로가 표시됩니다. – joe