2012-07-08 2 views
0

원격 FTP 위치에 클라이언트 웹 사이트의 백업을 만들고 있습니다. 주어진 cron에 백업을 만들고 원격 ftp 위치로 전송하는 스크립트 (cPanel에서 루트 액세스없이 사용 가능)가 있습니다. 이제 진짜 문제가 시작됩니다. 어떤 서버에도 무제한 기가 바이트의 디스크 공간을 가질 수 없기 때문에 백업을 제한해야합니다. 쉘 명령을 찾았습니다 (직접 cronjob에 추가하거나 bash 스크립트를 작성하여 cron에서 스크립트를 호출 할 수 있습니다.) 1 주일 단위의 백업을 유지하고 싶습니다. 1 주 이상 지난 디렉토리에서 백업을 삭제하고 싶습니다. . 나는 오류를쉘 이전 파일을 지우는 명령

find: missing argument to `-exec' 

할 수있는 사람의 도움을 다음있어 나는

find /path/to/files -mtime +30 -exec rm {}\; 

을 약속 같은데 다음 명령을 발견하지만이 명령을 실행했을 때 (테스트 용 나는 '의 -l LS'와 'RM'을 대체) 이 작은 문제를 해결하려면

나는 Ce를 실행하고있다. 국가 기술위원회 +의 cPanel

답변

1

방금 ​​오른쪽 대괄호 후 공간을 넣어야 할 수 있음 감사 :

find /path/to/files -mtime +30 -exec rm {} \; 

내가 CentOS는에 테스트 할 수 있지만 내 시스템에서 작동하지 않습니다 대괄호 주위에 공백을 넣지 않으면됩니다.

0

세미콜론은 별도의 인수 여야합니다 (일주일은 7 일입니다) : 당신은 아마로 결합 할 것 같은 ; 대신에 표기 +를 사용하는 것이 더 할 것, 사실

find /path/to/files -mtime +7 -exec rm {} ';' 

많은 파일은 xargs과 같이 하나의 명령 실행으로 편리하지만, xargs은 호출하지 않습니다. 따라서 :

find /path/to/files -mtime +7 -exec rm {} + 

또 다른 이점 중 하나는 쉘에서 보호해야하는 문자가 없다는 것입니다.